
int internal_fnwmatch(wchar_t *pattern,wchar_t *string,wchar_t *string_end,_Bool no_leading_period,
                     int flags)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  byte bVar9;
  undefined1 *puVar6;
  undefined4 *puVar7;
  int *piVar8;
  int *piVar10;
  byte *pbVar11;
  wchar_t wVar12;
  byte *pbVar13;
  undefined3 in_register_0000001c;
  uint unaff_s0;
  undefined1 *puVar14;
  uint unaff_s1;
  undefined4 *puVar15;
  byte *pbVar16;
  byte *pbVar17;
  byte *pbVar18;
  wchar_t *unaff_s5;
  wchar_t *pwVar19;
  byte *pbVar20;
  byte *unaff_s6;
  int iVar21;
  byte *pbVar22;
  byte *pbVar23;
  undefined1 *puVar24;
  undefined *puVar25;
  code *pcVar26;
  code *pcVar27;
  int iVar28;
  undefined1 *puVar29;
  byte *pbVar30;
  int iVar31;
  code *pcVar32;
  undefined4 uVar33;
  undefined1 auStack_5f0 [24];
  undefined *puStack_5d8;
  int *piStack_5d0;
  byte *pbStack_5cc;
  int iStack_5c8;
  byte *pbStack_5c4;
  uint uStack_5c0;
  int *piStack_5bc;
  int iStack_5b8;
  byte *pbStack_5b4;
  uint uStack_5b0;
  uint uStack_5ac;
  byte bStack_575;
  wchar_t str [257];
  char s [257];
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar25 = PTR_LAB_00049218;
  pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period);
  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;
  iVar21 = *pattern;
  pbVar18 = (byte *)string_end;
  pwVar19 = string;
  if (iVar21 != 0) {
    unaff_s5 = pattern + 1;
    unaff_s1 = flags & 2;
    unaff_s0 = flags & 0x10;
    unaff_s6 = pbVar17;
    do {
      if (unaff_s0 != 0) {
        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);
      }
      if (iVar21 - 0x21U < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();
        return iVar3;
      }
      if (string_end == pwVar19) goto LAB_0002ad44;
      iVar4 = *pwVar19;
      if (unaff_s0 != 0) {
        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);
      }
      uVar5 = 1;
      if (iVar4 != iVar21) goto LAB_0002ad48;
      unaff_s6 = (byte *)0x0;
      iVar21 = *unaff_s5;
      pwVar19 = pwVar19 + 1;
      unaff_s5 = unaff_s5 + 1;
    } while (iVar21 != 0);
  }
  uVar5 = 0;
  if (pwVar19 != string_end) {
    if ((flags & 8U) == 0) {
LAB_0002ad44:
      uVar5 = 1;
    }
    else {
      uVar5 = (uint)(*pwVar19 != 0x2f);
    }
  }
LAB_0002ad48:
  if (iVar3 == *(int *)puVar2) {
    return uVar5;
  }
  puVar25 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puStack_5d8 = puVar25 + 0x25b40;
  puVar24 = auStack_5f0;
  puVar15 = *(undefined4 **)(puVar25 + 0x1df5c);
  uStack_5c0 = (uint)bStack_575;
  pbVar22 = (byte *)((int)string + 1);
  iStack_5b8 = 0;
  pbStack_5b4 = (byte *)*puVar15;
  pbVar11 = (byte *)string;
  pbVar13 = pbVar18;
  pbStack_5c4 = pbVar17;
  uStack_5b0 = unaff_s0;
  uStack_5ac = unaff_s1;
  pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string);
  iVar21 = (int)(char)*(byte *)((int)string + 1);
  puVar25 = puStack_5d8;
  if (iVar21 != 0) {
    unaff_s5 = (wchar_t *)0x0;
    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);
    piStack_5bc = &iStack_5b8;
    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);
    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;
    puVar6 = auStack_5f0;
    unaff_s6 = pbVar22;
LAB_0002b75c:
    do {
      puVar24 = puVar6;
      if (iVar21 == 0x5b) {
        if (string_end[-0x160c] == 0) {
          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);
          wVar12 = -1;
          if (iVar21 != 0) {
            wVar12 = 1;
          }
          string_end[-0x160c] = wVar12;
          puVar25 = puStack_5d8;
        }
        bVar9 = pbVar22[1];
        pbVar20 = pbVar22 + 1;
        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {
          bVar9 = pbVar22[2];
          pbVar20 = pbVar22 + 2;
        }
        if (bVar9 == 0x5d) {
          bVar9 = pbVar20[1];
          pbVar20 = pbVar20 + 1;
        }
        pbVar11 = (byte *)0x5d;
        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {
          if (bVar9 == 0) goto LAB_0002b7b4;
          pbVar20 = pbVar22;
          bVar9 = *pbVar22;
        }
        iVar21 = (int)(char)pbVar20[1];
      }
      else {
        pbVar11 = &DAT_c0000601;
        uVar5 = iVar21 - 0x21U & 0xff;
        pbVar13 = (byte *)(uint)(uVar5 < 0x20);
        if (pbVar13 == (byte *)0x0) {
          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {
            pbVar20 = pbStack_5cc;
            if (unaff_s1 == 0) {
              pbVar20 = pbVar22 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;
            pbVar13 = pbVar22 + -(int)unaff_s6;
            pbVar16 = pbVar22 + 1;
            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar29 = puVar24 + iVar4;
            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);
            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);
            piVar10 = piStack_5bc;
            piVar8 = piStack_5d0;
            puVar25 = puStack_5d8;
            iVar21 = (int)(char)pbVar22[1];
            *puVar6 = 0;
            *piStack_5d0 = 0;
            piStack_5bc = piVar8;
            *piVar10 = (int)piVar8;
            pbVar11 = unaff_s6;
            unaff_s6 = pbVar16;
            pbVar22 = pbVar16;
            puVar24 = puVar24 + iVar4;
            puVar6 = puVar29;
            if (iVar21 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar21 = (int)(char)pbVar22[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {
            iVar21 = (int)(char)pbVar22[1];
            if (iVar21 != 0x28) goto joined_r0x0002b91c;
            pbVar13 = (byte *)0x1;
            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);
            pbVar22 = pbVar22 + 1;
            uVar5 = 7;
          }
          if (iVar21 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (wchar_t *)0x0) {
            if (1 < iVar3 - 0x3fU) {
              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);
            }
            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar6 = (undefined1 *)
                       (**(code **)(puVar25 + -0x7bfc))
                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);
              piVar8 = piStack_5bc;
              puVar25 = puStack_5d8;
              *puVar6 = 0;
              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;
              *piVar8 = (int)(puVar24 + iVar21 + 0x18);
              if (iStack_5b8 == 0) {
                iVar3 = (**(code **)(puVar25 + -0x7d80))
                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);
                return iVar3;
              }
              if (pbVar22[-1] != 0x29) {
                iVar3 = (**(code **)(puVar25 + -0x7d80))
                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);
                return iVar3;
              }
              if (0x1f < iVar3 - 0x21U) {
                iVar3 = (**(code **)(puVar25 + -0x7d80))
                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,
                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);
                return iVar3;
              }
                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar3 = (*(code *)(puVar25 +
                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)
                                ))();
              return iVar3;
            }
            break;
          }
          iVar21 = (int)(char)pbVar22[1];
          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);
        }
joined_r0x0002b91c:
        pbVar22 = pbVar22 + 1;
      }
      puVar6 = puVar24;
    } while (iVar21 != 0);
  }
LAB_0002b7b4:
  pcVar26 = *(code **)(puVar25 + -0x7c10);
  if (pbStack_5b4 == (byte *)*puVar15) {
    return -1;
  }
  pcVar32 = internal_fnmatch;
  pbVar20 = pbStack_5b4;
  (*pcVar26)();
  pcVar27 = pcVar26 + 0x25450;
  puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c);
  *(undefined1 **)(puVar24 + -8) = auStack_5f0;
  *(wchar_t **)(puVar24 + -0x1c) = string_end;
  *(code **)(puVar24 + -0x160) = pcVar27;
  *(code **)(puVar24 + -4) = pcVar32;
  *(byte **)(puVar24 + -0xc) = pbVar22;
  *(byte **)(puVar24 + -0x10) = unaff_s6;
  *(wchar_t **)(puVar24 + -0x14) = unaff_s5;
  *(byte **)(puVar24 + -0x18) = pbVar18;
  *(undefined4 **)(puVar24 + -0x20) = puVar15;
  *(uint *)(puVar24 + -0x24) = unaff_s1;
  *(wchar_t **)(puVar24 + -0x28) = string;
  *(undefined4 **)(puVar24 + -0x144) = puVar7;
  *(byte **)(puVar24 + -0x154) = pbVar20 + 1;
  pbVar16 = (byte *)(uint)*pbVar20;
  *(undefined4 *)(puVar24 + -0x2c) = *puVar7;
  pbVar23 = *(byte **)(pcVar26 + 0x1d488);
  pbVar22 = pbVar13;
  pbVar30 = pbVar11;
  if (pbVar16 != (byte *)0x0) {
    uVar5 = *(uint *)(puVar24 + 0x10);
    unaff_s1 = uVar5 & 2;
    string = (wchar_t *)(uVar5 & 0x10);
    *(uint *)(puVar24 + -0x140) = uVar5 & 5;
    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);
    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;
    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;
    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;
    pbVar18 = pbVar20;
    unaff_s6 = pbVar17;
    do {
      pbVar17 = pbVar16;
      if ((byte *)string != (byte *)0x0) {
        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();
        pcVar27 = *(code **)(puVar24 + -0x160);
        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);
      }
      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar3 = (*(pcVar27 +
                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();
        return iVar3;
      }
      uVar5 = 1;
      pbVar16 = pbVar17;
      if (pbVar30 == pbVar13) goto LAB_0002c064;
      pbVar16 = (byte *)(uint)*pbVar30;
      if ((byte *)string != (byte *)0x0) {
        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();
        pcVar27 = *(code **)(puVar24 + -0x160);
        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);
      }
      uVar5 = 1;
      unaff_s6 = pbVar17;
      if (pbVar16 != pbVar17) goto LAB_0002c064;
      pbVar18 = *(byte **)(puVar24 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar16 = (byte *)(uint)*pbVar18;
      pbVar30 = pbVar30 + 1;
      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;
    } while (pbVar16 != (byte *)0x0);
  }
  uVar5 = 0;
  if (pbVar30 != pbVar13) {
    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);
    if (pbVar18 == (byte *)0x0) {
      uVar5 = 1;
    }
    else {
      uVar5 = (uint)(*pbVar30 != 0x2f);
    }
  }
LAB_0002c064:
  iVar3 = *(int *)(puVar24 + -0x2c);
  if (iVar3 == **(int **)(puVar24 + -0x144)) {
    return uVar5;
  }
  pcVar26 = *(code **)(pcVar27 + -0x7c10);
  pcVar32 = gnu_fnmatch;
  (*pcVar26)();
  puVar6 = puVar24 + -0x1e0;
  pcVar27 = *(code **)(pcVar26 + 0x1cbc4);
  *(uint *)(puVar24 + -0x19c) = unaff_s1;
  piVar8 = *(int **)(pcVar26 + 0x1cc28);
  *(byte **)(puVar24 + -0x180) = pbVar30;
  *(byte **)(puVar24 + -0x198) = pbVar16;
  *(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c;
  *(code **)(puVar24 + -0x17c) = pcVar32;
  *(byte **)(puVar24 + -0x184) = pbVar23;
  *(byte **)(puVar24 + -0x188) = unaff_s6;
  *(wchar_t **)(puVar24 + -0x18c) = unaff_s5;
  *(byte **)(puVar24 + -400) = pbVar18;
  *(byte **)(puVar24 + -0x194) = pbVar13;
  *(wchar_t **)(puVar24 + -0x1a0) = string;
  *(int *)(puVar24 + -0x1b4) = iVar3;
  *(byte **)(puVar24 + -0x1b8) = pbVar11;
  *(int *)(puVar24 + -0x1a4) = *piVar8;
  iVar3 = (*pcVar27)();
  iVar21 = *(int *)(puVar24 + -0x1c8);
  if (iVar3 == 1) {
LAB_0002ca44:
    pbVar17 = *(byte **)(puVar24 + -0x1b8);
    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);
    *(byte **)(puVar24 + -0x1d0) = pbVar22;
    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,
                                       (char *)(pbVar17 + iVar3),
                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),
                                       *(int *)(puVar24 + -0x1d0));
    iVar3 = *(int *)(puVar24 + -0x1c8);
    puVar6 = puVar24 + -0x1e0;
  }
  else {
    puVar14 = puVar24 + -0x1ac;
    pcVar26 = *(code **)(iVar21 + -0x7ba4);
    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);
    *(undefined4 *)(puVar24 + -0x1ac) = 0;
    *(undefined4 *)(puVar24 + -0x1a8) = 0;
    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);
    pbVar13 = (byte *)(iVar3 + 1);
    iVar21 = *(int *)(puVar24 + -0x1c8);
    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);
    uVar33 = 0x129;
    iVar21 = *(int *)(puVar24 + -0x1c8);
    if (iVar3 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar24 + -0x1b8;
    pbVar17 = unaff_s6;
    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);
    pbVar23 = pbVar18 + 1;
    iVar21 = *(int *)(puVar24 + -0x1c8);
    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);
    iVar21 = *(int *)(puVar24 + -0x1c8);
    if (iVar3 == 0) {
      uVar33 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar11 = pbVar13 + (int)pbVar23;
    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {
LAB_0002cc10:
      pbVar11 = (byte *)0xffffffff;
      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();
      iVar3 = *(int *)(puVar24 + -0x1c8);
      *puVar15 = 0xc;
    }
    else if (pbVar11 < (byte *)0x7d0) {
      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);
      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);
      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);
      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);
      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);
      iVar21 = *(int *)(puVar24 + -0x1c8);
      if (iVar3 == 0) {
LAB_0002cd10:
        do {
          uVar33 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar21 + -0x7d80))
                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,
                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);
      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;
      pbVar17 = pbVar20;
      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,
                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),
                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),
                                          *(int *)(puVar24 + iVar4 + -0x1d0));
      iVar3 = *(int *)(puVar24 + -0x1c8);
      pbVar13 = pbVar20;
      unaff_s5 = pwVar19;
      puVar6 = puVar24 + iVar4 + -0x1e0;
    }
    else {
      iVar3 = (**(code **)(iVar21 + -0x7c80))();
      iVar21 = *(int *)(puVar24 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cc10;
      pcVar26 = *(code **)(iVar21 + -0x7ba4);
      *(int *)(puVar24 + -0x1bc) = iVar3;
      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);
      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);
      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);
      iVar21 = *(int *)(puVar24 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cd10;
      pcVar26 = *(code **)(iVar21 + -0x7ba4);
      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);
      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);
      *(byte **)(puVar24 + -0x1d0) = pbVar22;
      pbVar17 = pbVar20;
      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,
                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),
                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),
                                          *(int *)(puVar24 + -0x1d0));
      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));
      iVar3 = *(int *)(puVar24 + -0x1c8);
      pbVar13 = pbVar20;
      puVar6 = puVar24 + -0x1e0;
    }
  }
  iVar21 = *(int *)(puVar24 + -0x1a4);
  pcVar26 = *(code **)(iVar3 + -0x7c10);
  if (iVar21 == *piVar8) {
    return (int)pbVar11;
  }
  pcVar32 = rpl_getcwd;
  (*pcVar26)();
  pcVar27 = pcVar26 + 0x244c0;
  puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc);
  *(undefined4 **)(puVar6 + -0xf4) = puVar15;
  *(code **)(puVar6 + -0x110) = pcVar27;
  *(code **)(puVar6 + -4) = pcVar32;
  *(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0;
  *(byte **)(puVar6 + -0xc) = pbVar23;
  *(byte **)(puVar6 + -0x10) = unaff_s6;
  *(wchar_t **)(puVar6 + -0x14) = unaff_s5;
  *(byte **)(puVar6 + -0x18) = pbVar18;
  *(byte **)(puVar6 + -0x1c) = pbVar13;
  *(byte **)(puVar6 + -0x20) = pbVar22;
  *(int **)(puVar6 + -0x24) = piVar8;
  *(byte **)(puVar6 + -0x28) = pbVar11;
  *(byte **)(puVar6 + 4) = pbVar17;
  *(int *)(puVar6 + -0x100) = iVar21;
  *(undefined4 *)(puVar6 + -0x2c) = *puVar15;
  if (pbVar17 == (byte *)0x0) {
    if (iVar21 == 0) {
      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));
      pcVar27 = *(code **)(puVar6 + -0x110);
      *(int *)(puVar6 + -0x108) = iVar3;
      if (iVar3 == 0) {
        piVar10 = *(int **)(puVar6 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();
    pcVar27 = *(code **)(puVar6 + -0x110);
    *(undefined4 *)(puVar6 + -0x108) = 0;
    *puVar15 = 0x16;
  }
  else {
    if (*(int *)(puVar6 + -0x100) == 0) {
      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);
    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);
LAB_0002cdbc:
    iVar3 = *(int *)(puVar6 + -0x108);
    puVar24 = puVar6 + -0xd0;
    iVar4 = *(int *)(puVar6 + -0xf8);
    pcVar26 = *(code **)(pcVar27 + -0x7d60);
    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;
    iVar21 = (*pcVar26)(3,pbVar17,puVar24);
    iVar28 = *(int *)(puVar6 + -0x110);
    if (-1 < iVar21) {
      iVar21 = *(int *)(iVar28 + -0x7fc8);
      pcVar26 = *(code **)(iVar28 + -0x7d60);
      iVar31 = *(int *)(puVar6 + -0xc0);
      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);
      pbVar17 = (byte *)(iVar21 + 0x6154);
      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);
      iVar21 = (*pcVar26)(3,pbVar17,puVar24);
      iVar28 = *(int *)(puVar6 + -0x110);
      if (-1 < iVar21) {
        piVar8 = (int *)0x0;
        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;
        pbVar18 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);
        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);
        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);
        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&
           (iVar31 == *(int *)(puVar6 + -0xe4))) {
          pcVar26 = *(code **)(iVar28 + -0x7cac);
          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {
            if (piVar8 != (int *)0x0) {
              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);
              iVar28 = *(int *)(puVar6 + -0x110);
              if (iVar3 != 0) goto LAB_0002d19c;
            }
            iVar3 = *(int *)(puVar6 + -0xe0);
            if (*(int *)(puVar6 + -0xe0) ==
                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {
              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);
              *(undefined1 *)(iVar3 + -1) = 0x2f;
            }
            pbVar17 = *(byte **)(puVar6 + -0xe0);
            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17
                              );
            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);
            pcVar27 = *(code **)(puVar6 + -0x110);
            if (*(int *)(puVar6 + 4) == 0) {
              pbVar17 = pbVar11;
              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));
              pcVar27 = *(code **)(puVar6 + -0x110);
              *(undefined4 *)(puVar6 + -0x100) = uVar33;
            }
            iVar3 = *(int *)(puVar6 + -0x100);
            if (*(int *)(puVar6 + -0x100) == 0) {
              iVar3 = *(int *)(puVar6 + -0x108);
            }
            *(int *)(puVar6 + -0x108) = iVar3;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar26 = *(code **)(iVar28 + -0x7cac);
        }
        pbVar13 = *(byte **)(puVar6 + -0xe8);
        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);
        if ((int)pbVar18 < 0) {
          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();
          pcVar27 = *(code **)(puVar6 + -0x110);
          pbVar11 = *(byte **)pbVar22;
          if (piVar8 != (int *)0x0) {
            pcVar26 = *(code **)(pcVar27 + -0x7d6c);
LAB_0002d138:
            (*pcVar26)(piVar8);
            pcVar27 = *(code **)(puVar6 + -0x110);
          }
          pcVar26 = *(code **)(pcVar27 + -0x7bd8);
          pbVar17 = pbVar13;
          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar13 = pbVar18;
        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);
        iVar21 = *(int *)(puVar6 + -0x110);
        if (iVar3 == 0) {
          if (piVar8 == (int *)0x0) {
LAB_0002cec4:
            pcVar26 = *(code **)(iVar21 + -0x7d1c);
            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);
            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);
            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);
            piVar8 = (int *)(*pcVar26)(pbVar18);
            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();
            iVar3 = *(int *)(puVar6 + -0x110);
            if (piVar8 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar26 = *(code **)(iVar3 + -0x7d38);
LAB_0002cf18:
              pbVar22[0] = 0;
              pbVar22[1] = 0;
              pbVar22[2] = 0;
              pbVar22[3] = 0;
              piVar10 = (int *)(*pcVar26)(piVar8);
              iVar3 = *(int *)(puVar6 + -0x110);
              if (piVar10 == (int *)0x0) {
                pbVar11 = *(byte **)pbVar22;
                pcVar26 = *(code **)(iVar3 + -0x7d6c);
                if (pbVar11 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar11 = (byte *)0x2;
                    pbVar22[0] = 0;
                    pbVar22[1] = 0;
                    pbVar22[2] = 0;
                    pbVar22[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar3 + -0x7d90))(piVar8);
                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);
                  iVar3 = *(int *)(puVar6 + -0x110);
                  if (piVar10 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar11 = *(byte **)pbVar22;
                  pcVar26 = *(code **)(iVar3 + -0x7d6c);
                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);
          iVar21 = *(int *)(puVar6 + -0x110);
          if (iVar3 == 0) goto LAB_0002cec4;
          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();
          iVar3 = *(int *)(puVar6 + -0x110);
LAB_0002d208:
          pbVar11 = *(byte **)pbVar22;
        }
        else {
          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();
          iVar3 = *(int *)(puVar6 + -0x110);
          pbVar11 = *(byte **)pbVar22;
          if (piVar8 != (int *)0x0) {
            (**(code **)(iVar3 + -0x7d6c))(piVar8);
            iVar3 = *(int *)(puVar6 + -0x110);
          }
        }
        (**(code **)(iVar3 + -0x7d68))(pbVar18);
        pcVar27 = *(code **)(puVar6 + -0x110);
        pbVar17 = pbVar13;
        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;
        pcVar26 = *(code **)(pcVar27 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();
    pbVar11 = *(byte **)pbVar22;
    pcVar27 = *(code **)(puVar6 + -0x110);
    if (*(int *)(puVar6 + -0x100) == 0) {
      pcVar26 = *(code **)(pcVar27 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));
      pcVar27 = *(code **)(puVar6 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar22 = pbVar11;
    *(undefined4 *)(puVar6 + -0x108) = 0;
  }
LAB_0002d158:
  piVar10 = *(int **)(puVar6 + -0xf4);
LAB_0002d15c:
  iVar3 = *(int *)(puVar6 + -0x2c);
  if (iVar3 != *piVar10) {
    pcVar26 = *(code **)(pcVar27 + -0x7c10);
    uVar33 = 0x2d36c;
    (*pcVar26)();
    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;
    *(undefined4 *)(puVar6 + -300) = uVar33;
    *(byte **)(puVar6 + -0x130) = pbVar22;
    *(int **)(puVar6 + -0x134) = piVar8;
    *(byte **)(puVar6 + -0x138) = pbVar11;
    if (iVar3 == 0) {
      iVar3 = -1;
      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();
      *puVar15 = 0x7a;
    }
    else if (iVar3 == 10) {
      uVar33 = *(undefined4 *)pbVar17;
      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);
      if (iVar21 == 0) {
        iVar3 = -1;
        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);
        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);
        pbVar17[0] = 0;
        pbVar17[1] = 0;
        pbVar17[2] = 0;
        pbVar17[3] = 0;
        puVar15 = (undefined4 *)(*pcVar26)();
        *puVar15 = 0x3d;
      }
    }
    return iVar3;
  }
  return *(int *)(puVar6 + -0x108);
code_r0x0002d0ec:
  pcVar26 = *(code **)(iVar3 + -0x7d38);
  if ((piVar10[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar26 = *(code **)(iVar3 + -0x7c30);
  if (bVar1) {
    if (*piVar10 == iVar31) {
      iVar21 = *(int *)(puVar6 + -0x104);
      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {
        pcVar26 = *(code **)(iVar3 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar21 = *(int *)(puVar6 + -0x104);
    }
    pcVar26 = *(code **)(iVar3 + -0x7d38);
    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar26 = *(code **)(iVar3 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar17 = (byte *)((int)piVar10 + 0x13);
  *(undefined4 *)(puVar6 + -0x118) = 0x100;
  pbVar13 = pbVar18;
  iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24);
  iVar3 = *(int *)(puVar6 + -0x110);
  if (iVar21 != 0) goto LAB_0002cf10;
  pcVar26 = *(code **)(iVar3 + -0x7d38);
  if (((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||
      (*(int *)(puVar6 + -0xc0) != iVar31)) ||
     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))) goto LAB_0002cf18;
  pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108));
  pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17);
  iVar3 = *(int *)(puVar6 + -0x110);
  if (pbVar20 <= pbVar11) {
    pbVar16 = *(byte **)(puVar6 + -0xf8);
    if (*(int *)(puVar6 + 4) != 0) {
      pbVar11 = (byte *)0x22;
      pbVar22[0] = 0;
      pbVar22[1] = 0;
      pbVar22[2] = 0;
      pbVar22[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar30 = pbVar16;
    if (pbVar16 < pbVar11) {
      pbVar30 = pbVar11;
    }
    pbVar23 = pbVar30 + (int)pbVar16;
    pcVar26 = *(code **)(iVar3 + -0x7c78);
    if (pbVar23 < pbVar16) {
LAB_0002d338:
      pbVar11 = (byte *)0xc;
      pbVar22[0] = 0;
      pbVar22[1] = 0;
      pbVar22[2] = 0;
      pbVar22[3] = 0xc;
LAB_0002d134:
      pcVar26 = *(code **)(iVar3 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar6 + -0x104) = pbVar30;
    pbVar13 = pbVar23;
    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));
    iVar3 = *(int *)(puVar6 + -0x110);
    if (iVar21 == 0) goto LAB_0002d338;
    uVar33 = (**(code **)(iVar3 + -0x7be0))
                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,
                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);
    iVar3 = *(int *)(puVar6 + -0x110);
    *(byte **)(puVar6 + -0xf8) = pbVar23;
    *(undefined4 *)(puVar6 + -0xe0) = uVar33;
    *(int *)(puVar6 + -0x108) = iVar21;
  }
  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11);
  iVar28 = *(int *)(puVar6 + -0x110);
  iVar31 = *(int *)(puVar6 + -0xd8);
  *(int *)(puVar6 + -0xe0) = iVar3 + -1;
  *(undefined1 *)(iVar3 + -1) = 0x2f;
  *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4);
  *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0);
  goto LAB_0002ce58;
}



byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  byte *pbVar4;
  int iVar5;
  byte *pbVar6;
  uint uVar7;
  byte bVar12;
  undefined1 *puVar8;
  undefined4 *puVar9;
  int *piVar10;
  byte *pbVar11;
  int *piVar13;
  byte *pbVar14;
  uint unaff_s0;
  undefined1 *puVar15;
  uint unaff_s1;
  undefined4 *puVar16;
  byte *pbVar17;
  byte *pbVar18;
  int *unaff_s5;
  byte *unaff_s6;
  int iVar19;
  byte *pbVar20;
  undefined1 *puVar21;
  undefined *puVar22;
  code *pcVar23;
  code *pcVar24;
  int iVar25;
  undefined1 *puVar26;
  byte *pbVar27;
  byte *pbVar28;
  int iVar29;
  code *pcVar30;
  undefined4 uVar31;
  undefined1 auStack_5f0 [24];
  undefined *puStack_5d8;
  int *piStack_5d0;
  byte *pbStack_5cc;
  int iStack_5c8;
  byte *pbStack_5c4;
  uint uStack_5c0;
  int *piStack_5bc;
  int iStack_5b8;
  byte *pbStack_5b4;
  uint uStack_5b0;
  uint uStack_5ac;
  byte bStack_575;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar22 = PTR_LAB_00049218;
  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;
  iVar19 = *param_1;
  pbVar4 = param_3;
  pbVar27 = param_2;
  if (iVar19 != 0) {
    unaff_s5 = param_1 + 1;
    unaff_s1 = param_5 & 2;
    unaff_s0 = param_5 & 0x10;
    unaff_s6 = param_4;
    do {
      if (unaff_s0 != 0) {
        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);
      }
      if (iVar19 - 0x21U < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */
                    /* WARNING: Treating indirect jump as call */
        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();
        return pbVar4;
      }
      if (param_3 == pbVar27) goto LAB_0002ad44;
      iVar5 = *(int *)pbVar27;
      if (unaff_s0 != 0) {
        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);
      }
      pbVar6 = (byte *)0x1;
      if (iVar5 != iVar19) goto LAB_0002ad48;
      unaff_s6 = (byte *)0x0;
      iVar19 = *unaff_s5;
      pbVar27 = pbVar27 + 4;
      unaff_s5 = unaff_s5 + 1;
    } while (iVar19 != 0);
  }
  pbVar6 = (byte *)0x0;
  if (pbVar27 != param_3) {
    if ((param_5 & 8) == 0) {
LAB_0002ad44:
      pbVar6 = (byte *)0x1;
    }
    else {
      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);
    }
  }
LAB_0002ad48:
  if (iVar3 == *(int *)puVar2) {
    return pbVar6;
  }
  puVar22 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puStack_5d8 = puVar22 + 0x25b40;
  puVar21 = auStack_5f0;
  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);
  uStack_5c0 = (uint)bStack_575;
  pbVar27 = param_2 + 1;
  iStack_5b8 = 0;
  pbStack_5b4 = (byte *)*puVar16;
  pbVar14 = param_2;
  pbVar6 = pbVar4;
  pbStack_5c4 = param_4;
  uStack_5b0 = unaff_s0;
  uStack_5ac = unaff_s1;
  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);
  iVar19 = (int)(char)param_2[1];
  puVar22 = puStack_5d8;
  if (iVar19 != 0) {
    unaff_s5 = (int *)0x0;
    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);
    piStack_5bc = &iStack_5b8;
    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);
    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;
    puVar8 = auStack_5f0;
    unaff_s6 = pbVar27;
LAB_0002b75c:
    do {
      puVar21 = puVar8;
      if (iVar19 == 0x5b) {
        if (*(int *)(param_3 + -0x5830) == 0) {
          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);
          uVar31 = 0xffffffff;
          if (iVar19 != 0) {
            uVar31 = 1;
          }
          *(undefined4 *)(param_3 + -0x5830) = uVar31;
          puVar22 = puStack_5d8;
        }
        bVar12 = pbVar27[1];
        pbVar18 = pbVar27 + 1;
        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {
          bVar12 = pbVar27[2];
          pbVar18 = pbVar27 + 2;
        }
        if (bVar12 == 0x5d) {
          bVar12 = pbVar18[1];
          pbVar18 = pbVar18 + 1;
        }
        pbVar14 = (byte *)0x5d;
        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {
          if (bVar12 == 0) goto LAB_0002b7b4;
          pbVar18 = pbVar27;
          bVar12 = *pbVar27;
        }
        iVar19 = (int)(char)pbVar18[1];
      }
      else {
        pbVar14 = &DAT_c0000601;
        uVar7 = iVar19 - 0x21U & 0xff;
        pbVar6 = (byte *)(uint)(uVar7 < 0x20);
        if (pbVar6 == (byte *)0x0) {
          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {
            pbVar18 = pbStack_5cc;
            if (unaff_s1 == 0) {
              pbVar18 = pbVar27 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;
            pbVar6 = pbVar27 + -(int)unaff_s6;
            pbVar17 = pbVar27 + 1;
            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar26 = puVar21 + iVar5;
            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);
            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);
            piVar13 = piStack_5bc;
            piVar10 = piStack_5d0;
            puVar22 = puStack_5d8;
            iVar19 = (int)(char)pbVar27[1];
            *puVar8 = 0;
            *piStack_5d0 = 0;
            piStack_5bc = piVar10;
            *piVar13 = (int)piVar10;
            pbVar14 = unaff_s6;
            unaff_s6 = pbVar17;
            pbVar27 = pbVar17;
            puVar21 = puVar21 + iVar5;
            puVar8 = puVar26;
            if (iVar19 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar19 = (int)(char)pbVar27[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {
            iVar19 = (int)(char)pbVar27[1];
            if (iVar19 != 0x28) goto joined_r0x0002b91c;
            pbVar6 = (byte *)0x1;
            unaff_s5 = (int *)((int)unaff_s5 + 1);
            pbVar27 = pbVar27 + 1;
            uVar7 = 7;
          }
          if (iVar19 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (int *)0x0) {
            if (1 < iVar3 - 0x3fU) {
              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);
            }
            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar8 = (undefined1 *)
                       (**(code **)(puVar22 + -0x7bfc))
                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);
              piVar10 = piStack_5bc;
              puVar22 = puStack_5d8;
              *puVar8 = 0;
              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;
              *piVar10 = (int)(puVar21 + iVar19 + 0x18);
              if (iStack_5b8 == 0) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
              if (pbVar27[-1] != 0x29) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
              if (0x1f < iVar3 - 0x21U) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pbVar4 = (byte *)(*(code *)(puVar22 +
                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +
                                                 (iVar3 - 0x21U) * 4)))();
              return pbVar4;
            }
            break;
          }
          iVar19 = (int)(char)pbVar27[1];
          unaff_s5 = (int *)((int)unaff_s5 + -1);
        }
joined_r0x0002b91c:
        pbVar27 = pbVar27 + 1;
      }
      puVar8 = puVar21;
    } while (iVar19 != 0);
  }
LAB_0002b7b4:
  pcVar23 = *(code **)(puVar22 + -0x7c10);
  if (pbStack_5b4 == (byte *)*puVar16) {
    return (byte *)0xffffffff;
  }
  pcVar30 = FUN_0002bd90;
  pbVar18 = pbStack_5b4;
  (*pcVar23)();
  pcVar24 = pcVar23 + 0x25450;
  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);
  *(undefined1 **)(puVar21 + -8) = auStack_5f0;
  *(byte **)(puVar21 + -0x1c) = param_3;
  *(code **)(puVar21 + -0x160) = pcVar24;
  *(code **)(puVar21 + -4) = pcVar30;
  *(byte **)(puVar21 + -0xc) = pbVar27;
  *(byte **)(puVar21 + -0x10) = unaff_s6;
  *(int **)(puVar21 + -0x14) = unaff_s5;
  *(byte **)(puVar21 + -0x18) = pbVar4;
  *(undefined4 **)(puVar21 + -0x20) = puVar16;
  *(uint *)(puVar21 + -0x24) = unaff_s1;
  *(byte **)(puVar21 + -0x28) = param_2;
  *(undefined4 **)(puVar21 + -0x144) = puVar9;
  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;
  pbVar17 = (byte *)(uint)*pbVar18;
  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;
  pbVar20 = *(byte **)(pcVar23 + 0x1d488);
  pbVar27 = pbVar6;
  pbVar28 = pbVar14;
  if (pbVar17 != (byte *)0x0) {
    uVar7 = *(uint *)(puVar21 + 0x10);
    unaff_s1 = uVar7 & 2;
    param_2 = (byte *)(uVar7 & 0x10);
    *(uint *)(puVar21 + -0x140) = uVar7 & 5;
    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);
    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;
    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;
    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;
    pbVar4 = pbVar18;
    unaff_s6 = param_4;
    do {
      pbVar18 = pbVar17;
      if (param_2 != (byte *)0x0) {
        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();
        pcVar24 = *(code **)(puVar21 + -0x160);
        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);
      }
      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pbVar4 = (byte *)(*(pcVar24 +
                           *(int *)(*(int *)(puVar21 + -0x14c) +
                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();
        return pbVar4;
      }
      pbVar11 = (byte *)0x1;
      pbVar17 = pbVar18;
      if (pbVar28 == pbVar6) goto LAB_0002c064;
      pbVar17 = (byte *)(uint)*pbVar28;
      if (param_2 != (byte *)0x0) {
        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();
        pcVar24 = *(code **)(puVar21 + -0x160);
        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);
      }
      pbVar11 = (byte *)0x1;
      unaff_s6 = pbVar18;
      if (pbVar17 != pbVar18) goto LAB_0002c064;
      pbVar4 = *(byte **)(puVar21 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar17 = (byte *)(uint)*pbVar4;
      pbVar28 = pbVar28 + 1;
      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;
    } while (pbVar17 != (byte *)0x0);
  }
  pbVar11 = (byte *)0x0;
  if (pbVar28 != pbVar6) {
    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);
    if (pbVar4 == (byte *)0x0) {
      pbVar11 = (byte *)0x1;
    }
    else {
      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);
    }
  }
LAB_0002c064:
  iVar3 = *(int *)(puVar21 + -0x2c);
  if (iVar3 == **(int **)(puVar21 + -0x144)) {
    return pbVar11;
  }
  pcVar23 = *(code **)(pcVar24 + -0x7c10);
  pcVar30 = gnu_fnmatch;
  (*pcVar23)();
  puVar8 = puVar21 + -0x1e0;
  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);
  *(uint *)(puVar21 + -0x19c) = unaff_s1;
  piVar10 = *(int **)(pcVar23 + 0x1cc28);
  *(byte **)(puVar21 + -0x180) = pbVar28;
  *(byte **)(puVar21 + -0x198) = pbVar17;
  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;
  *(code **)(puVar21 + -0x17c) = pcVar30;
  *(byte **)(puVar21 + -0x184) = pbVar20;
  *(byte **)(puVar21 + -0x188) = unaff_s6;
  *(int **)(puVar21 + -0x18c) = unaff_s5;
  *(byte **)(puVar21 + -400) = pbVar4;
  *(byte **)(puVar21 + -0x194) = pbVar6;
  *(byte **)(puVar21 + -0x1a0) = param_2;
  *(int *)(puVar21 + -0x1b4) = iVar3;
  *(byte **)(puVar21 + -0x1b8) = pbVar14;
  *(int *)(puVar21 + -0x1a4) = *piVar10;
  iVar3 = (*pcVar24)();
  iVar19 = *(int *)(puVar21 + -0x1c8);
  if (iVar3 == 1) {
LAB_0002ca44:
    pbVar14 = *(byte **)(puVar21 + -0x1b8);
    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);
    *(byte **)(puVar21 + -0x1d0) = pbVar27;
    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,
                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);
    iVar3 = *(int *)(puVar21 + -0x1c8);
    puVar8 = puVar21 + -0x1e0;
  }
  else {
    puVar15 = puVar21 + -0x1ac;
    pcVar23 = *(code **)(iVar19 + -0x7ba4);
    unaff_s5 = (int *)(puVar21 + -0x1b4);
    *(undefined4 *)(puVar21 + -0x1ac) = 0;
    *(undefined4 *)(puVar21 + -0x1a8) = 0;
    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);
    pbVar6 = (byte *)(iVar3 + 1);
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);
    uVar31 = 0x129;
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (iVar3 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar21 + -0x1b8;
    pbVar14 = unaff_s6;
    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);
    pbVar20 = pbVar4 + 1;
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (iVar3 == 0) {
      uVar31 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar18 = pbVar6 + (int)pbVar20;
    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {
LAB_0002cc10:
      pbVar18 = (byte *)0xffffffff;
      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();
      iVar3 = *(int *)(puVar21 + -0x1c8);
      *puVar16 = 0xc;
    }
    else if (pbVar18 < (byte *)0x7d0) {
      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);
      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);
      pbVar17 = (byte *)(piVar13 + (int)pbVar6);
      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);
      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) {
LAB_0002cd10:
        do {
          uVar31 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar19 + -0x7d80))
                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,
                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);
      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;
      pbVar14 = pbVar17;
      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,
                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);
      iVar3 = *(int *)(puVar21 + -0x1c8);
      pbVar6 = pbVar17;
      unaff_s5 = piVar13;
      puVar8 = puVar21 + iVar5 + -0x1e0;
    }
    else {
      iVar3 = (**(code **)(iVar19 + -0x7c80))();
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cc10;
      pcVar23 = *(code **)(iVar19 + -0x7ba4);
      *(int *)(puVar21 + -0x1bc) = iVar3;
      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);
      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);
      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cd10;
      pcVar23 = *(code **)(iVar19 + -0x7ba4);
      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);
      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);
      *(byte **)(puVar21 + -0x1d0) = pbVar27;
      pbVar14 = pbVar17;
      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,
                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)
      ;
      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));
      iVar3 = *(int *)(puVar21 + -0x1c8);
      pbVar6 = pbVar17;
      puVar8 = puVar21 + -0x1e0;
    }
  }
  iVar19 = *(int *)(puVar21 + -0x1a4);
  pcVar23 = *(code **)(iVar3 + -0x7c10);
  if (iVar19 == *piVar10) {
    return pbVar18;
  }
  pcVar30 = rpl_getcwd;
  (*pcVar23)();
  pcVar24 = pcVar23 + 0x244c0;
  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);
  *(undefined4 **)(puVar8 + -0xf4) = puVar16;
  *(code **)(puVar8 + -0x110) = pcVar24;
  *(code **)(puVar8 + -4) = pcVar30;
  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;
  *(byte **)(puVar8 + -0xc) = pbVar20;
  *(byte **)(puVar8 + -0x10) = unaff_s6;
  *(int **)(puVar8 + -0x14) = unaff_s5;
  *(byte **)(puVar8 + -0x18) = pbVar4;
  *(byte **)(puVar8 + -0x1c) = pbVar6;
  *(byte **)(puVar8 + -0x20) = pbVar27;
  *(int **)(puVar8 + -0x24) = piVar10;
  *(byte **)(puVar8 + -0x28) = pbVar18;
  *(byte **)(puVar8 + 4) = pbVar14;
  *(int *)(puVar8 + -0x100) = iVar19;
  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;
  if (pbVar14 == (byte *)0x0) {
    if (iVar19 == 0) {
      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));
      pcVar24 = *(code **)(puVar8 + -0x110);
      *(int *)(puVar8 + -0x108) = iVar3;
      if (iVar3 == 0) {
        piVar13 = *(int **)(puVar8 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();
    pcVar24 = *(code **)(puVar8 + -0x110);
    *(undefined4 *)(puVar8 + -0x108) = 0;
    *puVar16 = 0x16;
  }
  else {
    if (*(int *)(puVar8 + -0x100) == 0) {
      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);
    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);
LAB_0002cdbc:
    iVar3 = *(int *)(puVar8 + -0x108);
    puVar21 = puVar8 + -0xd0;
    iVar5 = *(int *)(puVar8 + -0xf8);
    pcVar23 = *(code **)(pcVar24 + -0x7d60);
    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;
    iVar19 = (*pcVar23)(3,pbVar14,puVar21);
    iVar25 = *(int *)(puVar8 + -0x110);
    if (-1 < iVar19) {
      iVar19 = *(int *)(iVar25 + -0x7fc8);
      pcVar23 = *(code **)(iVar25 + -0x7d60);
      iVar29 = *(int *)(puVar8 + -0xc0);
      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);
      pbVar14 = (byte *)(iVar19 + 0x6154);
      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);
      iVar19 = (*pcVar23)(3,pbVar14,puVar21);
      iVar25 = *(int *)(puVar8 + -0x110);
      if (-1 < iVar19) {
        piVar10 = (int *)0x0;
        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;
        pbVar4 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);
        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);
        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);
        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&
           (iVar29 == *(int *)(puVar8 + -0xe4))) {
          pcVar23 = *(code **)(iVar25 + -0x7cac);
          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {
            if (piVar10 != (int *)0x0) {
              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);
              iVar25 = *(int *)(puVar8 + -0x110);
              if (iVar3 != 0) goto LAB_0002d19c;
            }
            iVar3 = *(int *)(puVar8 + -0xe0);
            if (*(int *)(puVar8 + -0xe0) ==
                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {
              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);
              *(undefined1 *)(iVar3 + -1) = 0x2f;
            }
            pbVar14 = *(byte **)(puVar8 + -0xe0);
            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14
                              );
            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);
            pcVar24 = *(code **)(puVar8 + -0x110);
            if (*(int *)(puVar8 + 4) == 0) {
              pbVar14 = pbVar18;
              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));
              pcVar24 = *(code **)(puVar8 + -0x110);
              *(undefined4 *)(puVar8 + -0x100) = uVar31;
            }
            iVar3 = *(int *)(puVar8 + -0x100);
            if (*(int *)(puVar8 + -0x100) == 0) {
              iVar3 = *(int *)(puVar8 + -0x108);
            }
            *(int *)(puVar8 + -0x108) = iVar3;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar23 = *(code **)(iVar25 + -0x7cac);
        }
        pbVar6 = *(byte **)(puVar8 + -0xe8);
        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);
        if ((int)pbVar4 < 0) {
          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();
          pcVar24 = *(code **)(puVar8 + -0x110);
          pbVar18 = *(byte **)pbVar27;
          if (piVar10 != (int *)0x0) {
            pcVar23 = *(code **)(pcVar24 + -0x7d6c);
LAB_0002d138:
            (*pcVar23)(piVar10);
            pcVar24 = *(code **)(puVar8 + -0x110);
          }
          pcVar23 = *(code **)(pcVar24 + -0x7bd8);
          pbVar14 = pbVar6;
          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar6 = pbVar4;
        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);
        iVar19 = *(int *)(puVar8 + -0x110);
        if (iVar3 == 0) {
          if (piVar10 == (int *)0x0) {
LAB_0002cec4:
            pcVar23 = *(code **)(iVar19 + -0x7d1c);
            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);
            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);
            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);
            piVar10 = (int *)(*pcVar23)(pbVar4);
            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();
            iVar3 = *(int *)(puVar8 + -0x110);
            if (piVar10 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar23 = *(code **)(iVar3 + -0x7d38);
LAB_0002cf18:
              pbVar27[0] = 0;
              pbVar27[1] = 0;
              pbVar27[2] = 0;
              pbVar27[3] = 0;
              piVar13 = (int *)(*pcVar23)(piVar10);
              iVar3 = *(int *)(puVar8 + -0x110);
              if (piVar13 == (int *)0x0) {
                pbVar18 = *(byte **)pbVar27;
                pcVar23 = *(code **)(iVar3 + -0x7d6c);
                if (pbVar18 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar18 = (byte *)0x2;
                    pbVar27[0] = 0;
                    pbVar27[1] = 0;
                    pbVar27[2] = 0;
                    pbVar27[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar3 + -0x7d90))(piVar10);
                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);
                  iVar3 = *(int *)(puVar8 + -0x110);
                  if (piVar13 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar18 = *(byte **)pbVar27;
                  pcVar23 = *(code **)(iVar3 + -0x7d6c);
                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);
          iVar19 = *(int *)(puVar8 + -0x110);
          if (iVar3 == 0) goto LAB_0002cec4;
          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();
          iVar3 = *(int *)(puVar8 + -0x110);
LAB_0002d208:
          pbVar18 = *(byte **)pbVar27;
        }
        else {
          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();
          iVar3 = *(int *)(puVar8 + -0x110);
          pbVar18 = *(byte **)pbVar27;
          if (piVar10 != (int *)0x0) {
            (**(code **)(iVar3 + -0x7d6c))(piVar10);
            iVar3 = *(int *)(puVar8 + -0x110);
          }
        }
        (**(code **)(iVar3 + -0x7d68))(pbVar4);
        pcVar24 = *(code **)(puVar8 + -0x110);
        pbVar14 = pbVar6;
        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;
        pcVar23 = *(code **)(pcVar24 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
    pbVar18 = *(byte **)pbVar27;
    pcVar24 = *(code **)(puVar8 + -0x110);
    if (*(int *)(puVar8 + -0x100) == 0) {
      pcVar23 = *(code **)(pcVar24 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));
      pcVar24 = *(code **)(puVar8 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar27 = pbVar18;
    *(undefined4 *)(puVar8 + -0x108) = 0;
  }
LAB_0002d158:
  piVar13 = *(int **)(puVar8 + -0xf4);
LAB_0002d15c:
  pbVar4 = *(byte **)(puVar8 + -0x2c);
  if (pbVar4 != (byte *)*piVar13) {
    pcVar23 = *(code **)(pcVar24 + -0x7c10);
    uVar31 = 0x2d36c;
    (*pcVar23)();
    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;
    *(undefined4 *)(puVar8 + -300) = uVar31;
    *(byte **)(puVar8 + -0x130) = pbVar27;
    *(int **)(puVar8 + -0x134) = piVar10;
    *(byte **)(puVar8 + -0x138) = pbVar18;
    if (pbVar4 == (byte *)0x0) {
      pbVar4 = (byte *)0xffffffff;
      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();
      *puVar16 = 0x7a;
    }
    else if (pbVar4 == (byte *)0xa) {
      uVar31 = *(undefined4 *)pbVar14;
      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);
      if (iVar3 == 0) {
        pbVar4 = (byte *)0xffffffff;
        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);
        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);
        pbVar14[0] = 0;
        pbVar14[1] = 0;
        pbVar14[2] = 0;
        pbVar14[3] = 0;
        puVar16 = (undefined4 *)(*pcVar23)();
        *puVar16 = 0x3d;
      }
    }
    return pbVar4;
  }
  return *(byte **)(puVar8 + -0x108);
code_r0x0002d0ec:
  pcVar23 = *(code **)(iVar3 + -0x7d38);
  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar23 = *(code **)(iVar3 + -0x7c30);
  if (bVar1) {
    if (*piVar13 == iVar29) {
      iVar19 = *(int *)(puVar8 + -0x104);
      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {
        pcVar23 = *(code **)(iVar3 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar19 = *(int *)(puVar8 + -0x104);
    }
    pcVar23 = *(code **)(iVar3 + -0x7d38);
    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar23 = *(code **)(iVar3 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar14 = (byte *)((int)piVar13 + 0x13);
  *(undefined4 *)(puVar8 + -0x118) = 0x100;
  pbVar6 = pbVar4;
  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);
  iVar3 = *(int *)(puVar8 + -0x110);
  if (iVar19 != 0) goto LAB_0002cf10;
  pcVar23 = *(code **)(iVar3 + -0x7d38);
  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||
      (*(int *)(puVar8 + -0xc0) != iVar29)) ||
     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;
  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));
  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);
  iVar3 = *(int *)(puVar8 + -0x110);
  if (pbVar17 <= pbVar18) {
    pbVar28 = *(byte **)(puVar8 + -0xf8);
    if (*(int *)(puVar8 + 4) != 0) {
      pbVar18 = (byte *)0x22;
      pbVar27[0] = 0;
      pbVar27[1] = 0;
      pbVar27[2] = 0;
      pbVar27[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar20 = pbVar28;
    if (pbVar28 < pbVar18) {
      pbVar20 = pbVar18;
    }
    pbVar11 = pbVar20 + (int)pbVar28;
    pcVar23 = *(code **)(iVar3 + -0x7c78);
    if (pbVar11 < pbVar28) {
LAB_0002d338:
      pbVar18 = (byte *)0xc;
      pbVar27[0] = 0;
      pbVar27[1] = 0;
      pbVar27[2] = 0;
      pbVar27[3] = 0xc;
LAB_0002d134:
      pcVar23 = *(code **)(iVar3 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar8 + -0x104) = pbVar20;
    pbVar6 = pbVar11;
    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));
    iVar3 = *(int *)(puVar8 + -0x110);
    if (iVar19 == 0) goto LAB_0002d338;
    uVar31 = (**(code **)(iVar3 + -0x7be0))
                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,
                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);
    iVar3 = *(int *)(puVar8 + -0x110);
    *(byte **)(puVar8 + -0xf8) = pbVar11;
    *(undefined4 *)(puVar8 + -0xe0) = uVar31;
    *(int *)(puVar8 + -0x108) = iVar19;
  }
  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);
  iVar25 = *(int *)(puVar8 + -0x110);
  iVar29 = *(int *)(puVar8 + -0xd8);
  *(int *)(puVar8 + -0xe0) = iVar3 + -1;
  *(undefined1 *)(iVar3 + -1) = 0x2f;
  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);
  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);
  goto LAB_0002ce58;
}


lui gp,0x2
addiu gp,gp,0x6740
addu gp,gp,t9
lw v0,-0x7be4(gp)
addiu sp,sp,-0x588
sw s7,0x57c(sp)
sw v0,0x30(sp)
sw gp,0x18(sp)
sw s8,0x580(sp)
or s8,a1,zero
sw s3,0x56c(sp)
or s3,a2,zero
sw ra,0x584(sp)
sw s6,0x578(sp)
sw s5,0x574(sp)
sw s4,0x570(sp)
sw s2,0x568(sp)
sw s1,0x564(sp)
sw s0,0x560(sp)
lw v0,0x0(v0)
lw s7,0x0(a0)
sw v0,0x55c(sp)
beq s7,zero,0x0002ae44
_lw v0,0x598(sp)
addiu s5,a0,0x4
or s4,a0,zero
or s6,a3,zero
andi s1,v0,0x2
andi s0,v0,0x10
andi v0,v0,0x5
sw v0,0x34(sp)
lw v0,-0x7fd8(gp)
sw v0,0x2c(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x7b00
sw v0,0x28(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x5c6c
sw v0,0x44(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x671c
sw v0,0x3c(sp)
beq s0,zero,0x0002ab68
_addiu v0,s7,-0x21
lw t9,-0x7bf0(gp)
jalr t9
_or a0,s7,zero
lw gp,0x18(sp)
or s7,v0,zero
addiu v0,s7,-0x21
sltiu a0,v0,0x3c
beq a0,zero,0x0002ae04
_lw v1,0x28(sp)
sll v0,v0,0x2
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
bne s1,zero,0x0002af88
_nop
lw s7,0x4(s4)
beq s7,zero,0x0002ad44
_addiu s5,s4,0x8
beq s0,zero,0x0002b248
_lw t9,-0x7bf0(gp)
jalr t9
_or a0,s7,zero
lw gp,0x18(sp)
beq s3,s8,0x0002ad44
_or s7,v0,zero
lw t9,-0x7bf0(gp)
or s4,s5,zero
jalr t9
_lw a0,0x0(s8)
bne v0,s7,0x0002ad44
_lw gp,0x18(sp)
b 0x0002ae34
_or s6,zero,zero
lw v0,0x2c(sp)
lw v0,-0x5830(v0)
beq v0,zero,0x0002b224
_lw t9,-0x7c74(gp)
beq s3,s8,0x0002ad44
_li v0,0x2e
lw s2,0x0(s8)
beq s2,v0,0x0002b1fc
_li v0,0x2f
bne s2,v0,0x0002ac14
_lw v0,0x598(sp)
andi v0,v0,0x1
bne v0,zero,0x0002ad48
_li v0,0x1
lw v0,0x4(s4)
li a0,0x21
beq v0,a0,0x0002b0e8
_lw v1,0x2c(sp)
lw a0,-0x5830(v1)
bltz a0,0x0002b2a0
_li a0,0x5e
sw zero,0x48(sp)
or s4,s5,zero
beq s0,zero,0x0002ac58
_addiu v1,sp,0x54
lw t9,-0x7bf0(gp)
jalr t9
_or a0,s2,zero
lw gp,0x18(sp)
or s2,v0,zero
addiu v1,sp,0x54
lw v0,0x0(s4)
li s6,0x100
sw v1,0x40(sp)
addiu v1,sp,0x454
addiu s4,s4,0x4
b 0x0002ac8c
_sw v1,0x38(sp)
beq v0,s2,0x0002b580
_or v0,a1,zero
or s4,a2,zero
li a0,0x5d
beq v0,a0,0x0002ad38
_nop
bne s1,zero,0x0002aca0
_li a0,0x5b
li a0,0x5c
beq v0,a0,0x0002b024
_li a0,0x5b
beq v0,a0,0x0002afac
_nop
beq v0,zero,0x0002ae0c
_nop
lw a1,0x0(s4)
beq s0,zero,0x0002acd8
_li a0,0x2d
lw t9,-0x7bf0(gp)
or a0,v0,zero
jalr t9
_sw a1,0x24(sp)
lw gp,0x18(sp)
lw a1,0x24(sp)
li a0,0x2d
bne a1,a0,0x0002ac74
_addiu a2,s4,0x4
lw a0,0x4(s4)
beq a0,zero,0x0002b050
_li a3,0x5d
beq a0,a3,0x0002b0a8
_nop
bne s1,zero,0x0002ad10
_addiu a1,s4,0x8
li a2,0x5c
bne a0,a2,0x0002ad10
_nop
lw a0,0x8(s4)
addiu a1,s4,0xc
beq a0,zero,0x0002ad44
_sltu v0,s2,v0
bne v0,zero,0x0002ad28
_sltu a0,a0,s2
beq a0,zero,0x0002b570
_nop
lw v0,0x0(a1)
li a0,0x5d
bne v0,a0,0x0002ac8c
_addiu s4,a1,0x4
lw v0,0x48(sp)
bne v0,zero,0x0002abd4
_nop
li v0,0x1
lw v1,0x30(sp)
lw a0,0x55c(sp)
lw v1,0x0(v1)
bne a0,v1,0x0002b694
_lw ra,0x584(sp)
lw s8,0x580(sp)
lw s7,0x57c(sp)
lw s6,0x578(sp)
lw s5,0x574(sp)
lw s4,0x570(sp)
lw s3,0x56c(sp)
lw s2,0x568(sp)
lw s1,0x564(sp)
lw s0,0x560(sp)
jr ra
_addiu sp,sp,0x588
lw v0,0x598(sp)
andi v0,v0,0x20
bne v0,zero,0x0002b450
_li v0,0x28
beq s3,s8,0x0002ad44
_li v1,0x2f
lw v0,0x0(s8)
beq v0,v1,0x0002b20c
_li v1,0x2e
bne v0,v1,0x0002ae2c
_nop
bne s6,zero,0x0002ad48
_li v0,0x1
b 0x0002ae34
_or s4,s5,zero
lw v1,0x34(sp)
li v0,0x5
bne v1,v0,0x0002ae04
_nop
beq s3,s8,0x0002ad44
_li v0,0x2f
lw v1,0x0(s8)
bne v1,v0,0x0002ad48
_li v0,0x1
or s4,s5,zero
b 0x0002ae34
_li s6,0x1
lw v0,0x598(sp)
andi v0,v0,0x20
bne v0,zero,0x0002b490
_li v0,0x28
beq s3,s8,0x0002ad44
_nop
beq s0,zero,0x0002ae24
_lw v0,0x0(s8)
lw t9,-0x7bf0(gp)
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
bne v0,s7,0x0002ad48
_li v0,0x1
or s6,zero,zero
or s4,s5,zero
lw s7,0x0(s4)
addiu s8,s8,0x4
bne s7,zero,0x0002ab48
_addiu s5,s4,0x4
beq s8,s3,0x0002ad48
_or v0,zero,zero
lw v0,0x598(sp)
andi s4,v0,0x8
beq s4,zero,0x0002ad44
_nop
lw v0,0x0(s8)
xori v0,v0,0x2f
b 0x0002ad48
_sltu v0,zero,v0
lw v0,0x598(sp)
andi t2,v0,0x20
bne t2,zero,0x0002b408
_li v0,0x28
beq s3,s8,0x0002ae90
_li v0,0x2e
lw a0,0x0(s8)
beq a0,v0,0x0002b258
_nop
lw s5,-0x7fc8(gp)
li v1,0x3f
lw s2,0x4(s4)
addiu s7,s4,0x8
lw v0,0x598(sp)
li a1,0x28
addiu s4,s5,-0x5fd0
beq s2,v1,0x0002aed8
_andi s5,v0,0x1
li v0,0x2a
bne s2,v0,0x0002b0f8
_nop
lw s2,0x0(s7)
beq s2,a1,0x0002af08
_nop
addiu s7,s7,0x4
bne s2,v1,0x0002aeb8
_li v0,0x2a
lw v0,0x0(s7)
beq v0,a1,0x0002af3c
_nop
beq s8,s3,0x0002ad44
_li v0,0x2f
lw a0,0x0(s8)
beq a0,v0,0x0002af74
_nop
lw s2,0x0(s7)
addiu s8,s8,0x4
b 0x0002aed0
_addiu s7,s7,0x4
beq t2,zero,0x0002aecc
_or t9,s4,zero
sw t2,0x24(sp)
bal 0x0002a030
_or a0,s7,zero
li v1,0x3f
lw gp,0x18(sp)
li a1,0x28
bne s7,v0,0x0002af64
_lw t2,0x24(sp)
lw s2,0x0(s7)
b 0x0002aed0
_addiu s7,s7,0x4
beq t2,zero,0x0002aee4
_or t9,s4,zero
sw t2,0x24(sp)
bal 0x0002a030
_or a0,s7,zero
li v1,0x3f
lw gp,0x18(sp)
li a1,0x28
beq s7,v0,0x0002aee4
_lw t2,0x24(sp)
or s7,v0,zero
lw s2,0x0(v0)
b 0x0002aed0
_addiu s7,s7,0x4
bne s5,zero,0x0002ad48
_li v0,0x1
lw s2,0x0(s7)
b 0x0002af00
_addiu s8,s8,0x4
beq s3,s8,0x0002ad48
_li v0,0x1
bne s0,zero,0x0002abc0
_lw t9,-0x7bf0(gp)
lw v0,0x0(s8)
bne v0,s7,0x0002ad44
_or s4,s5,zero
b 0x0002ae34
_or s6,zero,zero
lw a1,0x0(s4)
li a0,0x3a
bne a1,a0,0x0002acb4
_lw a3,0x40(sp)
or a1,zero,zero
li t3,0x3a
b 0x0002aff0
_or a2,s4,zero
addiu a0,v0,-0x61
sltiu a0,a0,0x19
beq a0,zero,0x0002b00c
_nop
addiu a1,a1,0x1
sw v0,0x0(a3)
or a2,t2,zero
beq a1,s6,0x0002ad44
_addiu a3,a3,0x4
lw v0,0x4(a2)
bne v0,t3,0x0002afcc
_addiu t2,a2,0x4
lw a0,0x4(t2)
li v0,0x5d
beq a0,v0,0x0002b2e0
_sll v0,a1,0x2
li v0,0x5b
beq s2,v0,0x0002b580
_addiu a2,s4,0x4
or s4,a2,zero
b 0x0002ac8c
_li v0,0x3a
lw v0,0x0(s4)
beq v0,zero,0x0002ad44
_nop
beq s0,zero,0x0002b044
_lw t9,-0x7bf0(gp)
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
lw a1,0x4(s4)
b 0x0002acd4
_addiu s4,s4,0x4
bne v0,s2,0x0002ad48
_li v0,0x1
li t2,0x5b
li a3,0x5d
li t0,0x3a
li t5,0x3d
li t3,0x2e
li t4,0x5c
or v0,a2,zero
beq a1,zero,0x0002ad44
_or a0,a1,zero
bne s1,zero,0x0002b08c
_nop
beq a1,t4,0x0002b1e0
_nop
beq a1,t2,0x0002b0bc
_nop
beq a0,a3,0x0002b63c
_or s4,v0,zero
lw a1,0x0(v0)
b 0x0002b070
_addiu a2,s4,0x4
beq v0,s2,0x0002b058
_li v0,0x2d
li a1,0x5d
b 0x0002acb4
_or s4,a2,zero
lw v0,0x4(s4)
beq v0,t0,0x0002b3c4
_addiu a0,s4,0x8
beq v0,t5,0x0002b2b4
_nop
beq v0,t3,0x0002b4e4
_nop
or a1,v0,zero
or s4,a2,zero
b 0x0002b070
_addiu a2,s4,0x4
li v0,0x1
addiu s4,s4,0x8
b 0x0002ac38
_sw v0,0x48(sp)
lw v0,0x598(sp)
beq s2,zero,0x0002b268
_andi s4,v0,0x1
li a1,0x2f
lw t9,-0x7cfc(gp)
subu a2,s3,s8
sw t2,0x24(sp)
movz a1,zero,s4
or a0,s8,zero
sra a2,a2,0x2
jalr t9
_or s5,s3,zero
li v1,0x5b
lw gp,0x18(sp)
beq s2,v1,0x0002b368
_movn s5,v0,v0
lw t2,0x24(sp)
bne t2,zero,0x0002b52c
_addiu v1,s2,-0x21
li v0,0x2f
beq s2,v0,0x0002b588
_nop
beq s4,zero,0x0002b560
_lw v1,0x598(sp)
li v0,0x5c
beq s2,v0,0x0002b62c
_nop
bne s0,zero,0x0002b4d0
_lw t9,-0x7bf0(gp)
sltu v0,s8,s5
beq v0,zero,0x0002ad44
_addiu s7,s7,-0x4
lw s1,-0x7fc8(gp)
b 0x0002b194
_addiu s1,s1,-0x5560
addiu s8,s8,0x4
sltu v0,s8,s5
beq v0,zero,0x0002ad44
_or s6,zero,zero
beq s0,zero,0x0002b1ac
_lw v0,0x0(s8)
lw t9,-0x7bf0(gp)
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
bne s2,v0,0x0002b184
_lw v0,0x598(sp)
andi a3,s6,0x1
or a2,s3,zero
or a1,s8,zero
sw v0,0x10(sp)
or t9,s1,zero
bal 0x0002aaa0
_or a0,s7,zero
bne v0,zero,0x0002b184
_lw gp,0x18(sp)
b 0x0002ad48
_or v0,zero,zero
lw v0,0x4(s4)
beq v0,zero,0x0002ad48
_li v0,0x1
lw a1,0x8(s4)
addiu s4,s4,0x8
b 0x0002b070
_addiu a2,s4,0x4
beq s6,zero,0x0002ac14
_li v0,0x1
b 0x0002ad4c
_lw v1,0x30(sp)
lw v0,0x598(sp)
andi v0,v0,0x1
beq v0,zero,0x0002ae2c
_li v0,0x1
b 0x0002ad4c
_lw v1,0x30(sp)
jalr t9
_lw a0,0x3c(sp)
li a0,0x1
li a1,-0x1
lw v1,0x2c(sp)
lw gp,0x18(sp)
movn a1,a0,v0
b 0x0002abec
_sw a1,-0x5830(v1)
bne s3,s8,0x0002af98
_li v0,0x1
b 0x0002ad4c
_lw v1,0x30(sp)
beq s6,zero,0x0002ae90
_li v0,0x1
b 0x0002ad4c
_lw v1,0x30(sp)
beq s4,zero,0x0002ad48
_or v0,zero,zero
lw v0,0x598(sp)
andi s4,v0,0x8
bne s4,zero,0x0002b1d8
_subu a2,s3,s8
lw t9,-0x7cfc(gp)
li a1,0x2f
sra a2,a2,0x2
jalr t9
_or a0,s8,zero
lw gp,0x18(sp)
b 0x0002ad48
_sltu v0,zero,v0
beq v0,a0,0x0002b0ec
_li v0,0x1
or s4,s5,zero
b 0x0002ac38
_sw zero,0x48(sp)
lw v0,0x8(s4)
beq v0,zero,0x0002ad48
_li v0,0x1
lw v0,0xc(s4)
bne v0,t5,0x0002ad48
_li v0,0x1
lw v0,0x10(s4)
bne v0,a3,0x0002ad44
_addiu v0,s4,0x18
b 0x0002b094
_lw a0,0x14(s4)
lw a1,0x40(sp)
addiu v1,sp,0x560
addiu a0,sp,0x458
addu v0,v1,v0
or a3,a0,zero
sw zero,-0x50c(v0)
b 0x0002b334
_lw v0,0x54(sp)
beq v1,zero,0x0002b314
_addiu v1,v0,-0x20
sltiu v1,v1,0x4
beq v1,zero,0x0002ad44
_nop
lw v1,0x38(sp)
beq a1,v1,0x0002ad44
_nop
addiu a1,a1,0x4
sb v0,0x0(a3)
lw v0,0x0(a1)
beq v0,zero,0x0002b5d4
_addiu a3,a3,0x1
slti v1,v0,0x40
bne v1,zero,0x0002b300
_slti v1,v0,0x25
slti v1,v0,0x41
bne v1,zero,0x0002ad44
_slti v1,v0,0x60
bne v1,zero,0x0002b314
_addiu v1,v0,-0x61
sltiu v1,v1,0x1e
bne v1,zero,0x0002b318
_lw v1,0x38(sp)
b 0x0002ad48
_li v0,0x1
beq s4,zero,0x0002b51c
_lw v1,0x598(sp)
sltu v0,s8,s5
beq v0,zero,0x0002ad44
_addiu s7,s7,-0x4
lw s0,-0x7fc8(gp)
addiu s0,s0,-0x5560
lw v0,0x598(sp)
or a3,s6,zero
or a2,s3,zero
or a1,s8,zero
sw v0,0x10(sp)
or t9,s0,zero
bal 0x0002aaa0
_or a0,s7,zero
beq v0,zero,0x0002b1d8
_lw gp,0x18(sp)
addiu s8,s8,0x4
sltu v0,s8,s5
bne v0,zero,0x0002b384
_or s6,zero,zero
b 0x0002ad48
_li v0,0x1
lw a1,0x8(s4)
b 0x0002b3ec
_addiu v1,s4,0x404
addiu a1,a1,-0x61
sltiu a1,a1,0x19
beq a1,zero,0x0002b0d8
_nop
addiu a0,a0,0x4
beq v1,a0,0x0002ad44
_lw a1,0x0(a0)
bne a1,t0,0x0002b3d0
_nop
lw v0,0x4(a0)
bne v0,a3,0x0002b0dc
_addiu v0,a0,0xc
b 0x0002b094
_lw a0,0x8(a0)
lw a0,0x4(s4)
bne a0,v0,0x0002ae7c
_lw t9,-0x7fc8(gp)
li a0,0x2a
lw v0,0x598(sp)
or a3,s3,zero
sw t2,0x24(sp)
or a2,s8,zero
addiu t9,t9,-0x5c6c
sw s6,0x10(sp)
sw v0,0x14(sp)
bal 0x0002a394
_or a1,s5,zero
li a0,-0x1
bne v0,a0,0x0002ad48
_lw gp,0x18(sp)
b 0x0002ae7c
_lw t2,0x24(sp)
lw v1,0x4(s4)
bne v1,v0,0x0002ad98
_lw v0,0x598(sp)
li a0,0x3f
lw t9,0x44(sp)
or a3,s3,zero
sw s6,0x10(sp)
or a2,s8,zero
sw v0,0x14(sp)
jalr t9
_or a1,s5,zero
li v1,-0x1
beq v0,v1,0x0002ad98
_lw gp,0x18(sp)
b 0x0002ad4c
_lw v1,0x30(sp)
lw v1,0x4(s4)
bne v1,v0,0x0002ae04
_lw v0,0x598(sp)
or a3,s3,zero
lw t9,0x44(sp)
or a2,s8,zero
sw s6,0x10(sp)
or a1,s5,zero
sw v0,0x14(sp)
jalr t9
_or a0,s7,zero
li v1,-0x1
beq v0,v1,0x0002ae04
_lw gp,0x18(sp)
b 0x0002ad4c
_lw v1,0x30(sp)
jalr t9
_or a0,s2,zero
lw gp,0x18(sp)
b 0x0002b16c
_or s2,v0,zero
addiu v0,s4,0x8
lw v1,0x4(v0)
beq v1,zero,0x0002ad44
_addiu a0,v0,0x4
beq v1,t3,0x0002b504
_nop
b 0x0002b4e8
_or v0,a0,zero
lw v1,0x4(a0)
bne v1,a3,0x0002b4fc
_nop
lw a0,0xc(v0)
b 0x0002b094
_addiu v0,v0,0x10
li v0,-0x5
and v0,v1,v0
b 0x0002b370
_sw v0,0x598(sp)
sltiu v0,v1,0x20
beq v0,zero,0x0002b150
_lui v0,0x8000
addiu v0,v0,0x401
srlv v0,v0,v1
ext v0,v0,0x0,0x1
beq v0,zero,0x0002b144
_li v0,0x28
lw v1,0x0(s7)
beq v1,v0,0x0002b368
_nop
bne s4,zero,0x0002b164
_lw v1,0x598(sp)
li v0,-0x5
and v0,v1,v0
b 0x0002b158
_sw v0,0x598(sp)
or s4,a1,zero
lw a1,0x0(a1)
b 0x0002b058
_addiu a2,s4,0x4
b 0x0002b058
_lw a1,0x0(s4)
beq s4,zero,0x0002b560
_lw v1,0x598(sp)
sltu v0,s8,s3
beq v0,zero,0x0002ad48
_li v0,0x1
lw v0,0x0(s8)
beq v0,s2,0x0002b654
_li v1,0x2f
b 0x0002b5c0
_addiu s8,s8,0x4
lw v0,0x0(s8)
beq v0,v1,0x0002b658
_lw v0,0x598(sp)
addiu s8,s8,0x4
sltu v0,s8,s3
bne v0,zero,0x0002b5b0
_li v0,0x1
b 0x0002ad4c
_lw v1,0x30(sp)
lw t9,-0x7bdc(gp)
sw a2,0x4c(sp)
sw t2,0x24(sp)
jalr t9
_sb zero,0x0(a3)
lw gp,0x18(sp)
or a1,v0,zero
lw t2,0x24(sp)
beq v0,zero,0x0002ad44
_lw a2,0x4c(sp)
lw t9,-0x7c4c(gp)
lw a0,0x0(s8)
sw a2,0x4c(sp)
jalr t9
_sw t2,0x24(sp)
lw gp,0x18(sp)
lw t2,0x24(sp)
bne v0,zero,0x0002b684
_lw a2,0x4c(sp)
addiu s4,t2,0xc
b 0x0002ac80
_lw v0,0x8(t2)
bne s1,zero,0x0002b164
_nop
b 0x0002b164
_lw s2,0x0(s7)
lw v1,0x48(sp)
bne v1,zero,0x0002ad44
_nop
or s4,v0,zero
b 0x0002ae34
_or s6,zero,zero
lw v0,0x598(sp)
addiu a1,s8,0x4
lw t9,-0x7fc8(gp)
or a2,s3,zero
or a0,s7,zero
ext a3,v0,0x2,0x1
addiu t9,t9,-0x5560
bal 0x0002aaa0
_sw v0,0x10(sp)
lw gp,0x18(sp)
b 0x0002ad48
_sltu v0,zero,v0
lw a1,0xc(a2)
addiu s4,a2,0xc
b 0x0002b058
_addiu a2,a2,0x10
lw t9,-0x7c10(gp)
jalr t9
_nop
(translation_unit "byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" type_identifier (pointer_declarator "* FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" * (function_declarator "FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" identifier (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint unaff_s0;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_5f0 [24];" type_identifier (array_declarator "auStack_5f0 [24]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_5d8;" type_identifier (pointer_declarator "*puStack_5d8" * identifier) ;) (declaration "int *piStack_5d0;" primitive_type (pointer_declarator "*piStack_5d0" * identifier) ;) (declaration "byte *pbStack_5cc;" type_identifier (pointer_declarator "*pbStack_5cc" * identifier) ;) (declaration "int iStack_5c8;" primitive_type identifier ;) (declaration "byte *pbStack_5c4;" type_identifier (pointer_declarator "*pbStack_5c4" * identifier) ;) (declaration "uint uStack_5c0;" type_identifier identifier ;) (declaration "int *piStack_5bc;" primitive_type (pointer_declarator "*piStack_5bc" * identifier) ;) (declaration "int iStack_5b8;" primitive_type identifier ;) (declaration "byte *pbStack_5b4;" type_identifier (pointer_declarator "*pbStack_5b4" * identifier) ;) (declaration "uint uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "byte bStack_575;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar22 = PTR_LAB_00049218;" (assignment_expression "puVar22 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" * (cast_expression "(int *)PTR___stack_chk_guard_000495fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "pbVar27 = param_2;" (assignment_expression "pbVar27 = param_2" identifier = identifier) ;) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" { (expression_statement "unaff_s5 = param_1 + 1;" (assignment_expression "unaff_s5 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = param_5 & 2;" (assignment_expression "unaff_s1 = param_5 & 2" identifier = (binary_expression "param_5 & 2" identifier & number_literal)) ;) (expression_statement "unaff_s0 = param_5 & 0x10;" (assignment_expression "unaff_s0 = param_5 & 0x10" identifier = (binary_expression "param_5 & 0x10" identifier & number_literal)) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    }" { (if_statement "if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" { (expression_statement "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);" (assignment_expression "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar19)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar19)" ( identifier )))) ;) })) (if_statement "if (iVar19 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" if (parenthesized_expression "(iVar19 - 0x21U < 0x3c)" ( (binary_expression "iVar19 - 0x21U < 0x3c" (binary_expression "iVar19 - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" { comment comment (expression_statement "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" identifier = (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" ( (binary_expression "&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" * (cast_expression "(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" ( (binary_expression "puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00" (binary_expression "puVar22 + (iVar19 - 0x21U) * 4" identifier + (binary_expression "(iVar19 - 0x21U) * 4" (parenthesized_expression "(iVar19 - 0x21U)" ( (binary_expression "iVar19 - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (param_3 == pbVar27) goto LAB_0002ad44;" if (parenthesized_expression "(param_3 == pbVar27)" ( (binary_expression "param_3 == pbVar27" identifier == identifier) )) (goto_statement "goto LAB_0002ad44;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)pbVar27;" (assignment_expression "iVar5 = *(int *)pbVar27" identifier = (pointer_expression "*(int *)pbVar27" * (cast_expression "(int *)pbVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" { (expression_statement "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);" (assignment_expression "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar5)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) })) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 != iVar19) goto LAB_0002ad48;" if (parenthesized_expression "(iVar5 != iVar19)" ( (binary_expression "iVar5 != iVar19" identifier != identifier) )) (goto_statement "goto LAB_0002ad48;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = *unaff_s5;" (assignment_expression "iVar19 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "pbVar27 = pbVar27 + 4;" (assignment_expression "pbVar27 = pbVar27 + 4" identifier = (binary_expression "pbVar27 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar6 = (byte *)0x0;" (assignment_expression "pbVar6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar27 != param_3)" ( (binary_expression "pbVar27 != param_3" identifier != identifier) )) (compound_statement "{\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" { (if_statement "if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" if (parenthesized_expression "((param_5 & 8) == 0)" ( (binary_expression "(param_5 & 8) == 0" (parenthesized_expression "(param_5 & 8)" ( (binary_expression "param_5 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }" { (labeled_statement "LAB_0002ad44:\n      pbVar6 = (byte *)0x1;" statement_identifier : (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" else (compound_statement "{\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" { (expression_statement "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);" (assignment_expression "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*(int *)pbVar27 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)pbVar27 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)pbVar27 != 0x2f)" ( (binary_expression "*(int *)pbVar27 != 0x2f" (pointer_expression "*(int *)pbVar27" * (cast_expression "(int *)pbVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar6;\n  }" { (return_statement "return pbVar6;" return identifier ;) }))) (expression_statement "puVar22 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_5d8 = puVar22 + 0x25b40;" (assignment_expression "puStack_5d8 = puVar22 + 0x25b40" identifier = (binary_expression "puVar22 + 0x25b40" identifier + number_literal)) ;) (expression_statement "puVar21 = auStack_5f0;" (assignment_expression "puVar21 = auStack_5f0" identifier = identifier) ;) (expression_statement "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);" (assignment_expression "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c)" identifier = (pointer_expression "*(undefined4 **)(puVar22 + 0x1df5c)" * (cast_expression "(undefined4 **)(puVar22 + 0x1df5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1df5c)" ( (binary_expression "puVar22 + 0x1df5c" identifier + number_literal) ))))) ;) (expression_statement "uStack_5c0 = (uint)bStack_575;" (assignment_expression "uStack_5c0 = (uint)bStack_575" identifier = (cast_expression "(uint)bStack_575" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar27 = param_2 + 1;" (assignment_expression "pbVar27 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iStack_5b8 = 0;" (assignment_expression "iStack_5b8 = 0" identifier = number_literal) ;) (expression_statement "pbStack_5b4 = (byte *)*puVar16;" (assignment_expression "pbStack_5b4 = (byte *)*puVar16" identifier = (cast_expression "(byte *)*puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" identifier = identifier) ;) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "pbStack_5c4 = param_4;" (assignment_expression "pbStack_5c4 = param_4" identifier = identifier) ;) (expression_statement "uStack_5b0 = unaff_s0;" (assignment_expression "uStack_5b0 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_5ac = unaff_s1;" (assignment_expression "uStack_5ac = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);" (assignment_expression "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + 0x1de9c))(param_2)" (parenthesized_expression "(**(code **)(puVar22 + 0x1de9c))" ( (pointer_expression "**(code **)(puVar22 + 0x1de9c)" * (pointer_expression "*(code **)(puVar22 + 0x1de9c)" * (cast_expression "(code **)(puVar22 + 0x1de9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1de9c)" ( (binary_expression "puVar22 + 0x1de9c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "iVar19 = (int)(char)param_2[1];" (assignment_expression "iVar19 = (int)(char)param_2[1]" identifier = (cast_expression "(int)(char)param_2[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" { (expression_statement "unaff_s5 = (int *)0x0;" (assignment_expression "unaff_s5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = *(byte **)(puStack_5d8 + -0x7fd8);" (assignment_expression "param_3 = *(byte **)(puStack_5d8 + -0x7fd8)" identifier = (pointer_expression "*(byte **)(puStack_5d8 + -0x7fd8)" * (cast_expression "(byte **)(puStack_5d8 + -0x7fd8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_5d8 + -0x7fd8)" ( (binary_expression "puStack_5d8 + -0x7fd8" identifier + number_literal) ))))) ;) (expression_statement "piStack_5bc = &iStack_5b8;" (assignment_expression "piStack_5bc = &iStack_5b8" identifier = (pointer_expression "&iStack_5b8" & identifier)) ;) (expression_statement "unaff_s1 = (uint)(iVar3 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(iVar3 - 0x3fU < 2)" identifier = (call_expression "(uint)(iVar3 - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - 0x3fU < 2)" ( (binary_expression "iVar3 - 0x3fU < 2" (binary_expression "iVar3 - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;" (assignment_expression "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c" identifier = (binary_expression "*(int *)(puStack_5d8 + -0x7fc8) + 0x671c" (pointer_expression "*(int *)(puStack_5d8 + -0x7fc8)" * (cast_expression "(int *)(puStack_5d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_5d8 + -0x7fc8)" ( (binary_expression "puStack_5d8 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar8 = auStack_5f0;" (assignment_expression "puVar8 = auStack_5f0" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar27;" (assignment_expression "unaff_s6 = pbVar27" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" statement_identifier : (do_statement "do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" do (compound_statement "{\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    }" { (expression_statement "puVar21 = puVar8;" (assignment_expression "puVar21 = puVar8" identifier = identifier) ;) (if_statement "if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" if (parenthesized_expression "(iVar19 == 0x5b)" ( (binary_expression "iVar19 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }" { (if_statement "if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" if (parenthesized_expression "(*(int *)(param_3 + -0x5830) == 0)" ( (binary_expression "*(int *)(param_3 + -0x5830) == 0" (pointer_expression "*(int *)(param_3 + -0x5830)" * (cast_expression "(int *)(param_3 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" { (expression_statement "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);" (assignment_expression "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8)" identifier = (call_expression "(**(code **)(puVar22 + -0x7c74))(iStack_5c8)" (parenthesized_expression "(**(code **)(puVar22 + -0x7c74))" ( (pointer_expression "**(code **)(puVar22 + -0x7c74)" * (pointer_expression "*(code **)(puVar22 + -0x7c74)" * (cast_expression "(code **)(puVar22 + -0x7c74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7c74)" ( (binary_expression "puVar22 + -0x7c74" identifier + number_literal) ))))) )) (argument_list "(iStack_5c8)" ( identifier )))) ;) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar19 != 0) {\n            uVar31 = 1;\n          }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar31 = 1;\n          }" { (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(param_3 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(param_3 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(param_3 + -0x5830)" * (cast_expression "(undefined4 *)(param_3 + -0x5830)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) })) (expression_statement "bVar12 = pbVar27[1];" (assignment_expression "bVar12 = pbVar27[1]" identifier = (subscript_expression "pbVar27[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar27 + 1;" (assignment_expression "pbVar18 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" if (parenthesized_expression "((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))))" ( (binary_expression "(bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" (parenthesized_expression "(bVar12 == 0x21)" ( (binary_expression "bVar12 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" ( (parenthesized_expression "(*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))" ( (binary_expression "*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)" (binary_expression "*(int *)(param_3 + -0x5830) < 0" (pointer_expression "*(int *)(param_3 + -0x5830)" * (cast_expression "(int *)(param_3 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar12 == 0x5e)" ( (binary_expression "bVar12 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" { (expression_statement "bVar12 = pbVar27[2];" (assignment_expression "bVar12 = pbVar27[2]" identifier = (subscript_expression "pbVar27[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar27 + 2;" (assignment_expression "pbVar18 = pbVar27 + 2" identifier = (binary_expression "pbVar27 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" { (expression_statement "bVar12 = pbVar18[1];" (assignment_expression "bVar12 = pbVar18[1]" identifier = (subscript_expression "pbVar18[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar14 = (byte *)0x5d;" (assignment_expression "pbVar14 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" while (parenthesized_expression "(pbVar27 = pbVar18 + 1, bVar12 != 0x5d)" ( (comma_expression "pbVar27 = pbVar18 + 1, bVar12 != 0x5d" (assignment_expression "pbVar27 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) , (binary_expression "bVar12 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" { (if_statement "if (bVar12 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar18 = pbVar27;" (assignment_expression "pbVar18 = pbVar27" identifier = identifier) ;) (expression_statement "bVar12 = *pbVar27;" (assignment_expression "bVar12 = *pbVar27" identifier = (pointer_expression "*pbVar27" * identifier)) ;) })) (expression_statement "iVar19 = (int)(char)pbVar18[1];" (assignment_expression "iVar19 = (int)(char)pbVar18[1]" identifier = (cast_expression "(int)(char)pbVar18[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar18[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar18[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" else (compound_statement "{\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" { (expression_statement "pbVar14 = &DAT_c0000601;" (assignment_expression "pbVar14 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar7 = iVar19 - 0x21U & 0xff;" (assignment_expression "uVar7 = iVar19 - 0x21U & 0xff" identifier = (binary_expression "iVar19 - 0x21U & 0xff" (binary_expression "iVar19 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar6 = (byte *)(uint)(uVar7 < 0x20);" (assignment_expression "pbVar6 = (byte *)(uint)(uVar7 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar7 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar7 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < 0x20)" ( (binary_expression "uVar7 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }" { (if_statement "if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0))" ( (binary_expression "(iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)" (parenthesized_expression "(iVar19 == 0x7c)" ( (binary_expression "iVar19 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (int *)0x0)" ( (binary_expression "unaff_s5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar18 = pbStack_5cc;" (assignment_expression "pbVar18 = pbStack_5cc" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar18 = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbVar18 = pbVar27 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar27 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + 7)" ( (binary_expression "pbVar18 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar6 = pbVar27 + -(int)unaff_s6;" (assignment_expression "pbVar6 = pbVar27 + -(int)unaff_s6" identifier = (binary_expression "pbVar27 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar27 + 1;" (assignment_expression "pbVar17 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + 7)" ( (binary_expression "pbVar18 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar26 = puVar21 + iVar5;" (assignment_expression "puVar26 = puVar21 + iVar5" identifier = (binary_expression "puVar21 + iVar5" identifier + identifier)) ;) (expression_statement "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);" (assignment_expression "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18)" identifier = (cast_expression "(int *)(puVar21 + iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar5 + 0x18)" ( (binary_expression "puVar21 + iVar5 + 0x18" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);" (assignment_expression "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar22 + -0x7bfc)" * (pointer_expression "*(code **)(puVar22 + -0x7bfc)" * (cast_expression "(code **)(puVar22 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7bfc)" ( (binary_expression "puVar22 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar21 + iVar5 + 0x1c)" ( (binary_expression "puVar21 + iVar5 + 0x1c" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) ))))) ;) (expression_statement "piVar13 = piStack_5bc;" (assignment_expression "piVar13 = piStack_5bc" identifier = identifier) ;) (expression_statement "piVar10 = piStack_5d0;" (assignment_expression "piVar10 = piStack_5d0" identifier = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*piStack_5d0 = 0;" (assignment_expression "*piStack_5d0 = 0" (pointer_expression "*piStack_5d0" * identifier) = number_literal) ;) (expression_statement "piStack_5bc = piVar10;" (assignment_expression "piStack_5bc = piVar10" identifier = identifier) ;) (expression_statement "*piVar13 = (int)piVar10;" (assignment_expression "*piVar13 = (int)piVar10" (pointer_expression "*piVar13" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar27 = pbVar17;" (assignment_expression "pbVar27 = pbVar17" identifier = identifier) ;) (expression_statement "puVar21 = puVar21 + iVar5;" (assignment_expression "puVar21 = puVar21 + iVar5" identifier = (binary_expression "puVar21 + iVar5" identifier + identifier)) ;) (expression_statement "puVar8 = puVar26;" (assignment_expression "puVar8 = puVar26" identifier = identifier) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];" statement_identifier : (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar7 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar7 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar7 & 0x1f)" number_literal >> (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" { (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar19 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar19 != 0x28)" ( (binary_expression "iVar19 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0002b91c;" goto statement_identifier ;)) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + 1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + 1)" identifier = (cast_expression "(int *)((int)unaff_s5 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + 1)" ( (binary_expression "(int)unaff_s5 + 1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar19 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar19 != 0x29)" ( (binary_expression "iVar19 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" if (parenthesized_expression "(unaff_s5 == (int *)0x0)" ( (binary_expression "unaff_s5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" { (if_statement "if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < iVar3 - 0x3fU)" ( (binary_expression "1 < iVar3 - 0x3fU" number_literal < (binary_expression "iVar3 - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar27 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" if (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" { (expression_statement "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);" (assignment_expression "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar22 + -0x7bfc)" * (pointer_expression "*(code **)(puVar22 + -0x7bfc)" * (cast_expression "(code **)(puVar22 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7bfc)" ( (binary_expression "puVar22 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" ( (binary_expression "puVar21 + iVar19 + 0x1c" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar27 - (int)unaff_s6" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "piVar10 = piStack_5bc;" (assignment_expression "piVar10 = piStack_5bc" identifier = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18)" * (cast_expression "(undefined4 *)(puVar21 + iVar19 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar19 + 0x18)" ( (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*piVar10 = (int)(puVar21 + iVar19 + 0x18);" (assignment_expression "*piVar10 = (int)(puVar21 + iVar19 + 0x18)" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)(puVar21 + iVar19 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar21 + iVar19 + 0x18)" ( (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) )))) ;) (if_statement "if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(iStack_5b8 == 0)" ( (binary_expression "iStack_5b8 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a14" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(pbVar27[-1] != 0x29)" ( (binary_expression "pbVar27[-1] != 0x29" (subscript_expression "pbVar27[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a24" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(0x1f < iVar3 - 0x21U)" ( (binary_expression "0x1f < iVar3 - 0x21U" number_literal < (binary_expression "iVar3 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a38" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) comment comment (expression_statement "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" identifier = (cast_expression "(byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" (parenthesized_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))" ( (pointer_expression "*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" * (cast_expression "(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" ( (binary_expression "puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" * (cast_expression "(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4" (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) + (binary_expression "(iVar3 - 0x21U) * 4" (parenthesized_expression "(iVar3 - 0x21U)" ( (binary_expression "iVar3 - 0x21U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + -1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + -1)" identifier = (cast_expression "(int *)((int)unaff_s5 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + -1)" ( (binary_expression "(int)unaff_s5 + -1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (labeled_statement "joined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;" statement_identifier : (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar8 = puVar21;" (assignment_expression "puVar8 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);" statement_identifier : (expression_statement "pcVar23 = *(code **)(puVar22 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(puVar22 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar22 + -0x7c10)" * (cast_expression "(code **)(puVar22 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7c10)" ( (binary_expression "puVar22 + -0x7c10" identifier + number_literal) ))))) ;)) (if_statement "if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }" if (parenthesized_expression "(pbStack_5b4 == (byte *)*puVar16)" ( (binary_expression "pbStack_5b4 == (byte *)*puVar16" identifier == (cast_expression "(byte *)*puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) )) (compound_statement "{\n    return (byte *)0xffffffff;\n  }" { (return_statement "return (byte *)0xffffffff;" return (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar30 = FUN_0002bd90;" (assignment_expression "pcVar30 = FUN_0002bd90" identifier = identifier) ;) (expression_statement "pbVar18 = pbStack_5b4;" (assignment_expression "pbVar18 = pbStack_5b4" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar24 = pcVar23 + 0x25450;" (assignment_expression "pcVar24 = pcVar23 + 0x25450" identifier = (binary_expression "pcVar23 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);" (assignment_expression "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x1d86c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1d86c)" ( (binary_expression "pcVar23 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_5f0;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_5f0" (pointer_expression "*(undefined1 **)(puVar21 + -8)" * (cast_expression "(undefined1 **)(puVar21 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1c) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x1c) = param_3" (pointer_expression "*(byte **)(puVar21 + -0x1c)" * (cast_expression "(byte **)(puVar21 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -0x160) = pcVar24;" (assignment_expression "*(code **)(puVar21 + -0x160) = pcVar24" (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar30" (pointer_expression "*(code **)(puVar21 + -4)" * (cast_expression "(code **)(puVar21 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0xc) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0xc)" * (cast_expression "(byte **)(puVar21 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x10)" * (cast_expression "(byte **)(puVar21 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x14)" * (cast_expression "(int **)(puVar21 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -0x18)" * (cast_expression "(byte **)(puVar21 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar16;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar16" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar21 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x24)" * (cast_expression "(uint *)(puVar21 + -0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x28)" * (cast_expression "(byte **)(puVar21 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x144) = puVar9;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar9" (pointer_expression "*(undefined4 **)(puVar21 + -0x144)" * (cast_expression "(undefined4 **)(puVar21 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x144)" ( (binary_expression "puVar21 + -0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = (byte *)(uint)*pbVar18;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar18" identifier = (binary_expression "(byte *)(uint)*pbVar18" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar9" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" * (cast_expression "(undefined4 *)(puVar21 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pbVar20 = *(byte **)(pcVar23 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(pcVar23 + 0x1d488)" identifier = (pointer_expression "*(byte **)(pcVar23 + 0x1d488)" * (cast_expression "(byte **)(pcVar23 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar27 = pbVar6;" (assignment_expression "pbVar27 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar14;" (assignment_expression "pbVar28 = pbVar14" identifier = identifier) ;) (if_statement "if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" if (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" { (expression_statement "uVar7 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar7 = *(uint *)(puVar21 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar21 + 0x10)" * (cast_expression "(uint *)(puVar21 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x10)" ( (binary_expression "puVar21 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = uVar7 & 2;" (assignment_expression "unaff_s1 = uVar7 & 2" identifier = (binary_expression "uVar7 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar7 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar7 & 0x10)" identifier = (cast_expression "(byte *)(uVar7 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar7 & 0x10)" ( (binary_expression "uVar7 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar7 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar7 & 5" (pointer_expression "*(uint *)(puVar21 + -0x140)" * (cast_expression "(uint *)(puVar21 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x140)" ( (binary_expression "puVar21 + -0x140" identifier + number_literal) )))) = (binary_expression "uVar7 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478)" (pointer_expression "*(undefined4 *)(puVar21 + -0x148)" * (cast_expression "(undefined4 *)(puVar21 + -0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x148)" ( (binary_expression "puVar21 + -0x148" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar23 + 0x1d478)" * (cast_expression "(undefined4 *)(pcVar23 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d478)" ( (binary_expression "pcVar23 + 0x1d478" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;" (assignment_expression "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70" (pointer_expression "*(byte **)(puVar21 + -0x14c)" * (cast_expression "(byte **)(puVar21 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14c)" ( (binary_expression "puVar21 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar20 + 0x7c70" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar21 + -0x138)" * (cast_expression "(int *)(puVar21 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x138)" ( (binary_expression "puVar21 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" * (cast_expression "(int *)(pcVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar21 + -0x13c)" * (cast_expression "(int *)(puVar21 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x13c)" ( (binary_expression "puVar21 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" * (cast_expression "(int *)(pcVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar4 = pbVar18;" (assignment_expression "pbVar4 = pbVar18" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);" do (compound_statement "{\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    }" { (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" * (cast_expression "(code **)(pcVar24 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d7c)" ( (binary_expression "pcVar24 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" identifier = (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);" (assignment_expression "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4 + 3)" ( (binary_expression "*piVar10 + (int)pbVar17 * 4 + 3" (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" if (parenthesized_expression "(((uint)(pbVar18 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + -0x21)" ( (binary_expression "pbVar18 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" { comment comment (expression_statement "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" identifier = (cast_expression "(byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" * (parenthesized_expression "(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (binary_expression "pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar21 + -0x14c)" * (cast_expression "(int *)(puVar21 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14c)" ( (binary_expression "puVar21 + -0x14c" identifier + number_literal) )))) + (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + -0x21)" ( (binary_expression "pbVar18 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar28 == pbVar6) goto LAB_0002c064;" if (parenthesized_expression "(pbVar28 == pbVar6)" ( (binary_expression "pbVar28 == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar17 = (byte *)(uint)*pbVar28;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar28" identifier = (binary_expression "(byte *)(uint)*pbVar28" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" * (cast_expression "(code **)(pcVar24 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d7c)" ( (binary_expression "pcVar24 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" identifier = (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);" (assignment_expression "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4)" identifier = (pointer_expression "*(byte **)(*piVar10 + (int)pbVar17 * 4)" * (cast_expression "(byte **)(*piVar10 + (int)pbVar17 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4)" ( (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar17 != pbVar18) goto LAB_0002c064;" if (parenthesized_expression "(pbVar17 != pbVar18)" ( (binary_expression "pbVar17 != pbVar18" identifier != identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar4 = *(byte **)(puVar21 + -0x154);" (assignment_expression "pbVar4 = *(byte **)(puVar21 + -0x154)" identifier = (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar17 = (byte *)(uint)*pbVar4;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar4 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar4 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar28 != pbVar6)" ( (binary_expression "pbVar28 != pbVar6" identifier != identifier) )) (compound_statement "{\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" { (expression_statement "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8)" identifier = (cast_expression "(byte *)(*(uint *)(puVar21 + 0x10) & 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar21 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar21 + 0x10) & 8" (pointer_expression "*(uint *)(puVar21 + 0x10)" * (cast_expression "(uint *)(puVar21 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x10)" ( (binary_expression "puVar21 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n    }" { (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" else (compound_statement "{\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" { (expression_statement "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);" (assignment_expression "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*pbVar28 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*pbVar28 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar28 != 0x2f)" ( (binary_expression "*pbVar28 != 0x2f" (pointer_expression "*pbVar28" * identifier) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar21 + -0x2c)" * (cast_expression "(int *)(puVar21 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }" if (parenthesized_expression "(iVar3 == **(int **)(puVar21 + -0x144))" ( (binary_expression "iVar3 == **(int **)(puVar21 + -0x144)" identifier == (pointer_expression "**(int **)(puVar21 + -0x144)" * (pointer_expression "*(int **)(puVar21 + -0x144)" * (cast_expression "(int **)(puVar21 + -0x144)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x144)" ( (binary_expression "puVar21 + -0x144" identifier + number_literal) )))))) )) (compound_statement "{\n    return pbVar11;\n  }" { (return_statement "return pbVar11;" return identifier ;) })) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7c10)" * (cast_expression "(code **)(pcVar24 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c10)" ( (binary_expression "pcVar24 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x1cbc4);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x1cbc4)" * (cast_expression "(code **)(pcVar23 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1cbc4)" ( (binary_expression "pcVar23 + 0x1cbc4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar21 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x19c)" * (cast_expression "(uint *)(puVar21 + -0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x19c)" ( (binary_expression "puVar21 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar10 = *(int **)(pcVar23 + 0x1cc28);" (assignment_expression "piVar10 = *(int **)(pcVar23 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar23 + 0x1cc28)" * (cast_expression "(int **)(pcVar23 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1cc28)" ( (binary_expression "pcVar23 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar28;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar28" (pointer_expression "*(byte **)(puVar21 + -0x180)" * (cast_expression "(byte **)(puVar21 + -0x180)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x180)" ( (binary_expression "puVar21 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x198) = pbVar17;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar17" (pointer_expression "*(byte **)(puVar21 + -0x198)" * (cast_expression "(byte **)(puVar21 + -0x198)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x198)" ( (binary_expression "puVar21 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c" (pointer_expression "*(code **)(puVar21 + -0x1c8)" * (cast_expression "(code **)(puVar21 + -0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) = (binary_expression "pcVar23 + 0x2480c" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar21 + -0x17c) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -0x17c) = pcVar30" (pointer_expression "*(code **)(puVar21 + -0x17c)" * (cast_expression "(code **)(puVar21 + -0x17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x17c)" ( (binary_expression "puVar21 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x184) = pbVar20;" (assignment_expression "*(byte **)(puVar21 + -0x184) = pbVar20" (pointer_expression "*(byte **)(puVar21 + -0x184)" * (cast_expression "(byte **)(puVar21 + -0x184)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x184)" ( (binary_expression "puVar21 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x188)" * (cast_expression "(byte **)(puVar21 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x188)" ( (binary_expression "puVar21 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x18c)" * (cast_expression "(int **)(puVar21 + -0x18c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18c)" ( (binary_expression "puVar21 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -400) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -400) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -400)" * (cast_expression "(byte **)(puVar21 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -400)" ( (binary_expression "puVar21 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x194) = pbVar6;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar6" (pointer_expression "*(byte **)(puVar21 + -0x194)" * (cast_expression "(byte **)(puVar21 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x194)" ( (binary_expression "puVar21 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x1a0)" * (cast_expression "(byte **)(puVar21 + -0x1a0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1a0)" ( (binary_expression "puVar21 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1b4) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1b4)" * (cast_expression "(int *)(puVar21 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1b8) = pbVar14;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar14" (pointer_expression "*(byte **)(puVar21 + -0x1b8)" * (cast_expression "(byte **)(puVar21 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1b8)" ( (binary_expression "puVar21 + -0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1a4) = *piVar10;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar10" (pointer_expression "*(int *)(puVar21 + -0x1a4)" * (cast_expression "(int *)(puVar21 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a4)" ( (binary_expression "puVar21 + -0x1a4" identifier + number_literal) )))) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar3 = (*pcVar24)();" (assignment_expression "iVar3 = (*pcVar24)()" identifier = (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);" statement_identifier : (expression_statement "pbVar14 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar14 = *(byte **)(puVar21 + -0x1b8)" identifier = (pointer_expression "*(byte **)(puVar21 + -0x1b8)" * (cast_expression "(byte **)(puVar21 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1b8)" ( (binary_expression "puVar21 + -0x1b8" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14)" identifier = (call_expression "(**(code **)(iVar19 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ca4)" * (pointer_expression "*(code **)(iVar19 + -0x7ca4)" * (cast_expression "(code **)(iVar19 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ca4)" ( (binary_expression "iVar19 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar14)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1d0)" ( (binary_expression "puVar21 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1b4)" * (cast_expression "(undefined4 *)(puVar21 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) , identifier , (binary_expression "pbVar14 + iVar3" identifier + identifier) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" { (expression_statement "puVar15 = puVar21 + -0x1ac;" (assignment_expression "puVar15 = puVar21 + -0x1ac" identifier = (binary_expression "puVar21 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (int *)(puVar21 + -0x1b4);" (assignment_expression "unaff_s5 = (int *)(puVar21 + -0x1b4)" identifier = (cast_expression "(int *)(puVar21 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar21 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1ac)" ( (binary_expression "puVar21 + -0x1ac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1a8)" * (cast_expression "(undefined4 *)(puVar21 + -0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a8)" ( (binary_expression "puVar21 + -0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);" (assignment_expression "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15)" identifier = (call_expression "(*pcVar23)(0,unaff_s5,0,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(0,unaff_s5,0,puVar15)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar6 = (byte *)(iVar3 + 1);" (assignment_expression "pbVar6 = (byte *)(iVar3 + 1)" identifier = (cast_expression "(byte *)(iVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" ( (pointer_expression "**(code **)(iVar19 + -0x7be8)" * (pointer_expression "*(code **)(iVar19 + -0x7be8)" * (cast_expression "(code **)(iVar19 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7be8)" ( (binary_expression "iVar19 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" identifier = number_literal) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;)) (expression_statement "unaff_s6 = puVar21 + -0x1b8;" (assignment_expression "unaff_s6 = puVar21 + -0x1b8" identifier = (binary_expression "puVar21 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);" (assignment_expression "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar15)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar20 = pbVar4 + 1;" (assignment_expression "pbVar20 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" ( (pointer_expression "**(code **)(iVar19 + -0x7be8)" * (pointer_expression "*(code **)(iVar19 + -0x7be8)" * (cast_expression "(code **)(iVar19 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7be8)" ( (binary_expression "iVar19 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" { (expression_statement "uVar31 = 0x12d;" (assignment_expression "uVar31 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar6 + (int)pbVar20;" (assignment_expression "pbVar18 = pbVar6 + (int)pbVar20" identifier = (binary_expression "pbVar6 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18))" ( (binary_expression "(pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)" (parenthesized_expression "(pbVar18 < pbVar6)" ( (binary_expression "pbVar18 < pbVar6" identifier < identifier) )) || (parenthesized_expression "((byte *)0x3fffffff < pbVar18)" ( (binary_expression "(byte *)0x3fffffff < pbVar18" (cast_expression "(byte *)0x3fffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }" { (labeled_statement "LAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;" statement_identifier : (expression_statement "pbVar18 = (byte *)0xffffffff;" (assignment_expression "pbVar18 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar16 = 0xc;" (assignment_expression "*puVar16 = 0xc" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" else (if_statement "if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "(pbVar18 < (byte *)0x7d0)" ( (binary_expression "pbVar18 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }" { (expression_statement "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar18 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar18 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar18 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar18 * 4 + 7U" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);" (assignment_expression "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8)" identifier = (cast_expression "(int *)(puVar21 + iVar5 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar5 + -0x1c8)" ( (binary_expression "puVar21 + iVar5 + -0x1c8" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar17 = (byte *)(piVar13 + (int)pbVar6);" (assignment_expression "pbVar17 = (byte *)(piVar13 + (int)pbVar6)" identifier = (cast_expression "(byte *)(piVar13 + (int)pbVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + (int)pbVar6)" ( (binary_expression "piVar13 + (int)pbVar6" identifier + (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(piVar13,unaff_s5,pbVar6,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d80))" ( (pointer_expression "**(code **)(iVar19 + -0x7d80)" * (pointer_expression "*(code **)(iVar19 + -0x7d80)" * (cast_expression "(code **)(iVar19 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d80)" ( (binary_expression "iVar19 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + iVar5 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + iVar5 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + iVar5 + -0x1d0)" ( (binary_expression "puVar21 + iVar5 + -0x1d0" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar17 + (int)pbVar4 * 4" identifier + (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" identifier = identifier) ;) (expression_statement "unaff_s5 = piVar13;" (assignment_expression "unaff_s5 = piVar13" identifier = identifier) ;) (expression_statement "puVar8 = puVar21 + iVar5 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + iVar5 + -0x1e0" identifier = (binary_expression "puVar21 + iVar5 + -0x1e0" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" { (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7c80))();" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar19 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7c80))" ( (pointer_expression "**(code **)(iVar19 + -0x7c80)" * (pointer_expression "*(code **)(iVar19 + -0x7c80)" * (cast_expression "(code **)(iVar19 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7c80)" ( (binary_expression "iVar19 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1bc)" * (cast_expression "(int *)(puVar21 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);" (assignment_expression "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4)" identifier = (cast_expression "(byte *)(iVar3 + (int)pbVar6 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + (int)pbVar6 * 4)" ( (binary_expression "iVar3 + (int)pbVar6 * 4" identifier + (binary_expression "(int)pbVar6 * 4" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);" (call_expression "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(iVar3,unaff_s5,pbVar6,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1d0)" ( (binary_expression "puVar21 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) , identifier , (binary_expression "pbVar17 + (int)pbVar4 * 4" identifier + (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7bd8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0x1bc))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" identifier = identifier) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1a4)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1a4)" * (cast_expression "(int *)(puVar21 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a4)" ( (binary_expression "puVar21 + -0x1a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c10)" * (cast_expression "(code **)(iVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c10)" ( (binary_expression "iVar3 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == *piVar10) {\n    return pbVar18;\n  }" if (parenthesized_expression "(iVar19 == *piVar10)" ( (binary_expression "iVar19 == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return pbVar18;\n  }" { (return_statement "return pbVar18;" return identifier ;) })) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar24 = pcVar23 + 0x244c0;" (assignment_expression "pcVar24 = pcVar23 + 0x244c0" identifier = (binary_expression "pcVar23 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);" (assignment_expression "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar23 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c8dc)" ( (binary_expression "pcVar23 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar8 + -0xf4) = puVar16;" (assignment_expression "*(undefined4 **)(puVar8 + -0xf4) = puVar16" (pointer_expression "*(undefined4 **)(puVar8 + -0xf4)" * (cast_expression "(undefined4 **)(puVar8 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar8 + -0x110) = pcVar24;" (assignment_expression "*(code **)(puVar8 + -0x110) = pcVar24" (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar8 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar8 + -4) = pcVar30" (pointer_expression "*(code **)(puVar8 + -4)" * (cast_expression "(code **)(puVar8 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -4)" ( (binary_expression "puVar8 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar8 + -8)" * (cast_expression "(undefined1 **)(puVar8 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -8)" ( (binary_expression "puVar8 + -8" identifier + number_literal) )))) = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar8 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0xc)" * (cast_expression "(byte **)(puVar8 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xc)" ( (binary_expression "puVar8 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar8 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar8 + -0x10)" * (cast_expression "(byte **)(puVar8 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x10)" ( (binary_expression "puVar8 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar8 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar8 + -0x14)" * (cast_expression "(int **)(puVar8 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x14)" ( (binary_expression "puVar8 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar8 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar8 + -0x18)" * (cast_expression "(byte **)(puVar8 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x18)" ( (binary_expression "puVar8 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x1c) = pbVar6;" (assignment_expression "*(byte **)(puVar8 + -0x1c) = pbVar6" (pointer_expression "*(byte **)(puVar8 + -0x1c)" * (cast_expression "(byte **)(puVar8 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x1c)" ( (binary_expression "puVar8 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x20) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x20) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x20)" * (cast_expression "(byte **)(puVar8 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x20)" ( (binary_expression "puVar8 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x24) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x24) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x24)" * (cast_expression "(int **)(puVar8 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x24)" ( (binary_expression "puVar8 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x28) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x28) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x28)" * (cast_expression "(byte **)(puVar8 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x28)" ( (binary_expression "puVar8 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + 4) = pbVar14;" (assignment_expression "*(byte **)(puVar8 + 4) = pbVar14" (pointer_expression "*(byte **)(puVar8 + 4)" * (cast_expression "(byte **)(puVar8 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar8 + -0x100) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x100) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x2c) = *puVar16;" (assignment_expression "*(undefined4 *)(puVar8 + -0x2c) = *puVar16" (pointer_expression "*(undefined4 *)(puVar8 + -0x2c)" * (cast_expression "(undefined4 *)(puVar8 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x2c)" ( (binary_expression "puVar8 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar16" * identifier)) ;) (if_statement "if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }" { (if_statement "if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c840)" * (pointer_expression "*(code **)(pcVar23 + 0x1c840)" * (cast_expression "(code **)(pcVar23 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c840)" ( (binary_expression "pcVar23 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar8 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar8 + -0xf4)" * (cast_expression "(int **)(puVar8 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c7f8)" * (cast_expression "(code **)(pcVar23 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c7f8)" ( (binary_expression "pcVar23 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100)" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" * (cast_expression "(undefined4 *)(puVar8 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" identifier = (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar21 = puVar8 + -0xd0;" (assignment_expression "puVar21 = puVar8 + -0xd0" identifier = (binary_expression "puVar8 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar5 = *(int *)(puVar8 + -0xf8);" (assignment_expression "iVar5 = *(int *)(puVar8 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d60)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7d60)" * (cast_expression "(code **)(pcVar24 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d60)" ( (binary_expression "pcVar24 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" identifier = (cast_expression "(byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" ( (binary_expression "*(int *)(pcVar24 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar24 + -0x7fc8)" * (cast_expression "(int *)(pcVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + -0x7fc8)" ( (binary_expression "pcVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + iVar5 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar3 + iVar5 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar3 + iVar5 + -1)" * (cast_expression "(undefined1 *)(iVar3 + iVar5 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar5 + -1)" ( (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar14,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar19)" ( (binary_expression "-1 < iVar19" number_literal < identifier) )) (compound_statement "{\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar19 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar19 = *(int *)(iVar25 + -0x7fc8)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7fc8)" * (cast_expression "(int *)(iVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7fc8)" ( (binary_expression "iVar25 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7d60)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d60)" * (cast_expression "(code **)(iVar25 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d60)" ( (binary_expression "iVar25 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar8 + -0xc0);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar8 + -0xc0)" * (cast_expression "(int *)(puVar8 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" * (cast_expression "(undefined4 *)(puVar8 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(iVar19 + 0x6154);" (assignment_expression "pbVar14 = (byte *)(iVar19 + 0x6154)" identifier = (cast_expression "(byte *)(iVar19 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x6154)" ( (binary_expression "iVar19 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" * (cast_expression "(undefined4 *)(puVar8 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar14,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar19)" ( (binary_expression "-1 < iVar19" number_literal < identifier) )) (compound_statement "{\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar4 = (byte *)0xffffff9c;" (assignment_expression "pbVar4 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xec)" * (cast_expression "(undefined4 *)(puVar8 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xec)" ( (binary_expression "puVar8 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xe4)" * (cast_expression "(undefined4 *)(puVar8 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe4)" ( (binary_expression "puVar8 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" * (cast_expression "(undefined4 *)(puVar8 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xdc)" * (cast_expression "(undefined4 *)(puVar8 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xdc)" ( (binary_expression "puVar8 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar8 + -0xe8)" * (cast_expression "(int *)(puVar8 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe8)" ( (binary_expression "puVar8 + -0xe8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(iVar25 + -0x7fc8)" * (cast_expression "(int *)(iVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7fc8)" ( (binary_expression "iVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4)))" ( (binary_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))" (parenthesized_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec))" ( (binary_expression "*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)" (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar8 + -0xec)" * (cast_expression "(int *)(puVar8 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xec)" ( (binary_expression "puVar8 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar29 == *(int *)(puVar8 + -0xe4))" ( (binary_expression "iVar29 == *(int *)(puVar8 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar8 + -0xe4)" * (cast_expression "(int *)(puVar8 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe4)" ( (binary_expression "puVar8 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7cac)" * (cast_expression "(code **)(iVar25 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cac)" ( (binary_expression "iVar25 + -0x7cac" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc))" ( (binary_expression "*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)" (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar8 + -0xdc)" * (cast_expression "(int *)(puVar8 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xdc)" ( (binary_expression "puVar8 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10)" identifier = (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar25 + -0x7d6c)" * (pointer_expression "*(code **)(iVar25 + -0x7d6c)" * (cast_expression "(code **)(iVar25 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d6c)" ( (binary_expression "iVar25 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = *(int *)(puVar8 + -0xe0);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);" (assignment_expression "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1)" (pointer_expression "*(undefined1 **)(puVar8 + -0xe0)" * (cast_expression "(undefined1 **)(puVar8 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar14 = *(byte **)(puVar8 + -0xe0);" (assignment_expression "pbVar14 = *(byte **)(puVar8 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xe0)" * (cast_expression "(byte **)(puVar8 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );" (assignment_expression "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" identifier = (cast_expression "(byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" ( (binary_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14" (parenthesized_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8))" ( (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar25 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar25 + -0x7bd0)" * (pointer_expression "*(code **)(iVar25 + -0x7bd0)" * (cast_expression "(code **)(iVar25 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bd0)" ( (binary_expression "iVar25 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" ( (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" if (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" ( (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" { (expression_statement "pbVar14 = pbVar18;" (assignment_expression "pbVar14 = pbVar18" identifier = identifier) ;) (expression_statement "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" identifier = (call_expression "(**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(**(code **)(pcVar24 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar24 + -0x7c78)" * (pointer_expression "*(code **)(pcVar24 + -0x7c78)" * (cast_expression "(code **)(pcVar24 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c78)" ( (binary_expression "pcVar24 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" * (cast_expression "(undefined4 *)(puVar8 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = *(int *)(puVar8 + -0x100);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x100)" identifier = (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" { (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" identifier = (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" { (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7cac)" * (cast_expression "(code **)(iVar25 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cac)" ( (binary_expression "iVar25 + -0x7cac" identifier + number_literal) ))))) ;) })))) (expression_statement "pbVar6 = *(byte **)(puVar8 + -0xe8);" (assignment_expression "pbVar6 = *(byte **)(puVar8 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xe8)" * (cast_expression "(byte **)(puVar8 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe8)" ( (binary_expression "puVar8 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);" (assignment_expression "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0)" identifier = (cast_expression "(byte *)(*pcVar23)(pbVar4,pbVar6,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(pbVar4,pbVar6,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar4,pbVar6,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar4 < 0)" ( (binary_expression "(int)pbVar4 < 0" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d6c)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7d6c)" * (cast_expression "(code **)(pcVar24 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d6c)" ( (binary_expression "pcVar24 + -0x7d6c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d138:\n            (*pcVar23)(piVar10);" statement_identifier : (expression_statement "(*pcVar23)(piVar10);" (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(piVar10)" ( identifier ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" identifier = (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar4,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }" { (if_statement "if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7d1c);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7d1c)" * (cast_expression "(code **)(iVar19 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d1c)" ( (binary_expression "iVar19 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" * (cast_expression "(undefined4 *)(puVar8 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd8)" * (cast_expression "(undefined4 *)(puVar8 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd8)" ( (binary_expression "puVar8 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" * (cast_expression "(undefined4 *)(puVar8 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" * (cast_expression "(undefined4 *)(puVar8 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd4)" ( (binary_expression "puVar8 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar10 = (int *)(*pcVar23)(pbVar4);" (assignment_expression "piVar10 = (int *)(*pcVar23)(pbVar4)" identifier = (cast_expression "(int *)(*pcVar23)(pbVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(pbVar4)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar4)" ( identifier ))))) ;) (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar27[0] = 0;" statement_identifier : (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0;" (assignment_expression "pbVar27[3] = 0" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar13 = (int *)(*pcVar23)(piVar10);" (assignment_expression "piVar13 = (int *)(*pcVar23)(piVar10)" identifier = (cast_expression "(int *)(*pcVar23)(piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(piVar10)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" { (labeled_statement "LAB_0002d128:\n                    pbVar18 = (byte *)0x2;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x2;" (assignment_expression "pbVar18 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 2;" (assignment_expression "pbVar27[3] = 2" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar3 + -0x7d90))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d90))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d90))" ( (pointer_expression "**(code **)(iVar3 + -0x7d90)" * (pointer_expression "*(code **)(iVar3 + -0x7d90)" * (cast_expression "(code **)(iVar3 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d90)" ( (binary_expression "iVar3 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);" (assignment_expression "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar13 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" * (cast_expression "(char *)((int)piVar13 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002d0e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002cf58;" goto statement_identifier ;) })) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) goto LAB_0002d128;" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d128;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar13 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" * (cast_expression "(char *)((int)piVar13 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002cf34;" goto statement_identifier ;)) (labeled_statement "LAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar13 + 5) != '\0')" ( (binary_expression "*(char *)(piVar13 + 5) != '\0'" (pointer_expression "*(char *)(piVar13 + 5)" * (cast_expression "(char *)(piVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 5)" ( (binary_expression "piVar13 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0002d0ec;" goto statement_identifier ;))) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d208;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10)" identifier = (call_expression "(**(code **)(iVar19 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar19 + -0x7d6c)" * (pointer_expression "*(code **)(iVar19 + -0x7d6c)" * (cast_expression "(code **)(iVar19 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d6c)" ( (binary_expression "iVar19 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;" statement_identifier : (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" { (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar3 + -0x7d6c))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar3 + -0x7d6c)" * (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar3 + -0x7d68))(pbVar4);" (call_expression "(**(code **)(iVar3 + -0x7d68))(pbVar4)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d68))" ( (pointer_expression "**(code **)(iVar3 + -0x7d68)" * (pointer_expression "*(code **)(iVar3 + -0x7d68)" * (cast_expression "(code **)(iVar3 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d68)" ( (binary_expression "iVar3 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar4)" ( identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) (if_statement "if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) != 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar25 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar25 + -0x7cc8)" * (pointer_expression "*(code **)(iVar25 + -0x7cc8)" * (cast_expression "(code **)(iVar25 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cc8)" ( (binary_expression "iVar25 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" statement_identifier : (expression_statement "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;" statement_identifier : (expression_statement "*(byte **)pbVar27 = pbVar18;" (assignment_expression "*(byte **)pbVar27 = pbVar18" (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);" statement_identifier : (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar8 + -0xf4)" * (cast_expression "(int **)(puVar8 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);" statement_identifier : (expression_statement "pbVar4 = *(byte **)(puVar8 + -0x2c);" (assignment_expression "pbVar4 = *(byte **)(puVar8 + -0x2c)" identifier = (pointer_expression "*(byte **)(puVar8 + -0x2c)" * (cast_expression "(byte **)(puVar8 + -0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x2c)" ( (binary_expression "puVar8 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" if (parenthesized_expression "(pbVar4 != (byte *)*piVar13)" ( (binary_expression "pbVar4 != (byte *)*piVar13" identifier != (cast_expression "(byte *)*piVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) )) (compound_statement "{\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7c10)" * (cast_expression "(code **)(pcVar24 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c10)" ( (binary_expression "pcVar24 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;" (assignment_expression "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70" (pointer_expression "*(code **)(puVar8 + -0x140)" * (cast_expression "(code **)(puVar8 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar23 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar8 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -300)" * (cast_expression "(undefined4 *)(puVar8 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -300)" ( (binary_expression "puVar8 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x130) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x130) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x130)" * (cast_expression "(byte **)(puVar8 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x130)" ( (binary_expression "puVar8 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x134) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x134) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x134)" * (cast_expression "(int **)(puVar8 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x134)" ( (binary_expression "puVar8 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x138) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x138) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x138)" * (cast_expression "(byte **)(puVar8 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x138)" ( (binary_expression "puVar8 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }" { (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c1a8)" * (cast_expression "(code **)(pcVar23 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c1a8)" ( (binary_expression "pcVar23 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar16 = 0x7a;" (assignment_expression "*puVar16 = 0x7a" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" else (if_statement "if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0xa)" ( (binary_expression "pbVar4 == (byte *)0xa" identifier == (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" { (expression_statement "uVar31 = *(undefined4 *)pbVar14;" (assignment_expression "uVar31 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c2c8)" * (cast_expression "(code **)(pcVar23 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c2c8)" ( (binary_expression "pcVar23 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar23 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar23 + 0x1bea8)" * (cast_expression "(int *)(pcVar23 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1bea8)" ( (binary_expression "pcVar23 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" { (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar8 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar8 + -0x140)" * (cast_expression "(int *)(puVar8 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar31)" ( identifier ))) ;) (expression_statement "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);" (assignment_expression "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x140)" * (cast_expression "(int *)(puVar8 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar14[0] = 0;" (assignment_expression "pbVar14[0] = 0" (subscript_expression "pbVar14[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[1] = 0;" (assignment_expression "pbVar14[1] = 0" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[2] = 0;" (assignment_expression "pbVar14[2] = 0" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[3] = 0;" (assignment_expression "pbVar14[3] = 0" (subscript_expression "pbVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16 = (undefined4 *)(*pcVar23)();" (assignment_expression "puVar16 = (undefined4 *)(*pcVar23)()" identifier = (cast_expression "(undefined4 *)(*pcVar23)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar16 = 0x3d;" (assignment_expression "*puVar16 = 0x3d" (pointer_expression "*puVar16" * identifier) = number_literal) ;) })) })))) (return_statement "return pbVar4;" return identifier ;) })) (return_statement "return *(byte **)(puVar8 + -0x108);" return (pointer_expression "*(byte **)(puVar8 + -0x108)" * (cast_expression "(byte **)(puVar8 + -0x108)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar13[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar13[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar13[5] & 0xffff0000U)" ( (binary_expression "piVar13[5] & 0xffff0000U" (subscript_expression "piVar13[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" { (if_statement "if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" if (parenthesized_expression "(*piVar13 == iVar29)" ( (binary_expression "*piVar13 == iVar29" (pointer_expression "*piVar13" * identifier) == identifier) )) (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" identifier = (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar13[1] == *(int *)(puVar8 + -0xfc))" ( (binary_expression "piVar13[1] == *(int *)(puVar8 + -0xfc)" (subscript_expression "piVar13[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" else (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" { (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" identifier = (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar19 == *(int *)(puVar8 + -0xf0))" ( (binary_expression "iVar19 == *(int *)(puVar8 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar8 + -0xf0)" * (cast_expression "(int *)(puVar8 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);" statement_identifier : (expression_statement "pbVar14 = (byte *)((int)piVar13 + 0x13);" (assignment_expression "pbVar14 = (byte *)((int)piVar13 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar13 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar8 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar8 + -0x118)" * (cast_expression "(undefined4 *)(puVar8 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x118)" ( (binary_expression "puVar8 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar4,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar4,pbVar14,puVar21)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29))" ( (binary_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)" (parenthesized_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)))" ( (binary_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" (parenthesized_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar8 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar8 + -0xb8)" * (cast_expression "(uint *)(puVar8 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xb8)" ( (binary_expression "puVar8 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" ( (binary_expression "*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)" (pointer_expression "*(int *)(puVar8 + -0xd0)" * (cast_expression "(int *)(puVar8 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xc0) != iVar29)" ( (binary_expression "*(int *)(puVar8 + -0xc0) != iVar29" (pointer_expression "*(int *)(puVar8 + -0xc0)" * (cast_expression "(int *)(puVar8 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" ( (binary_expression "*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)" (pointer_expression "*(int *)(puVar8 + -0xbc)" * (cast_expression "(int *)(puVar8 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));" (assignment_expression "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" ( (binary_expression "*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108)" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);" (assignment_expression "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" identifier = (cast_expression "(byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar3 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar3 + -0x7ca4)" * (pointer_expression "*(code **)(iVar3 + -0x7ca4)" * (cast_expression "(code **)(iVar3 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7ca4)" ( (binary_expression "iVar3 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar14)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" if (parenthesized_expression "(pbVar17 <= pbVar18)" ( (binary_expression "pbVar17 <= pbVar18" identifier <= identifier) )) (compound_statement "{\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" { (expression_statement "pbVar28 = *(byte **)(puVar8 + -0xf8);" (assignment_expression "pbVar28 = *(byte **)(puVar8 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xf8)" * (cast_expression "(byte **)(puVar8 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar8 + 4) != 0)" ( (binary_expression "*(int *)(puVar8 + 4) != 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" { (expression_statement "pbVar18 = (byte *)0x22;" (assignment_expression "pbVar18 = (byte *)0x22" identifier = (cast_expression "(byte *)0x22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0x22;" (assignment_expression "pbVar27[3] = 0x22" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar20 = pbVar28;" (assignment_expression "pbVar20 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }" if (parenthesized_expression "(pbVar28 < pbVar18)" ( (binary_expression "pbVar28 < pbVar18" identifier < identifier) )) (compound_statement "{\n      pbVar20 = pbVar18;\n    }" { (expression_statement "pbVar20 = pbVar18;" (assignment_expression "pbVar20 = pbVar18" identifier = identifier) ;) })) (expression_statement "pbVar11 = pbVar20 + (int)pbVar28;" (assignment_expression "pbVar11 = pbVar20 + (int)pbVar28" identifier = (binary_expression "pbVar20 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c78);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c78)" * (cast_expression "(code **)(iVar3 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c78)" ( (binary_expression "iVar3 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar11 < pbVar28)" ( (binary_expression "pbVar11 < pbVar28" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" { (labeled_statement "LAB_0002d338:\n      pbVar18 = (byte *)0xc;" statement_identifier : (expression_statement "pbVar18 = (byte *)0xc;" (assignment_expression "pbVar18 = (byte *)0xc" identifier = (cast_expression "(byte *)0xc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0xc;" (assignment_expression "pbVar27[3] = 0xc" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar8 + -0x104) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0x104) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0x104)" * (cast_expression "(byte **)(puVar8 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar6 = pbVar11;" (assignment_expression "pbVar6 = pbVar11" identifier = identifier) ;) (expression_statement "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" identifier = (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);" (assignment_expression "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" ( (binary_expression "pbVar17 + iVar19 + *(int *)(puVar8 + -0x104)" (binary_expression "pbVar17 + iVar19" identifier + identifier) + (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar17 + iVar19" identifier + identifier) , (binary_expression "*(int *)(puVar8 + -0xf8) - (int)pbVar17" (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar8 + -0xf8) = pbVar11;" (assignment_expression "*(byte **)(puVar8 + -0xf8) = pbVar11" (pointer_expression "*(byte **)(puVar8 + -0xf8)" * (cast_expression "(byte **)(puVar8 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0xe0)" * (cast_expression "(undefined4 *)(puVar8 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar8 + -0x108) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" ( (binary_expression "*(int *)(puVar8 + -0xe0) - (int)pbVar18" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar8 + -0xd8);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar8 + -0xd8)" * (cast_expression "(int *)(puVar8 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd8)" ( (binary_expression "puVar8 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" * (cast_expression "(undefined4 *)(puVar8 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" * (cast_expression "(undefined4 *)(puVar8 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd4)" ( (binary_expression "puVar8 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" * (cast_expression "(undefined4 *)(puVar8 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" * (cast_expression "(undefined4 *)(puVar8 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002ce58;" goto statement_identifier ;) })))
(translation_unit "int internal_fnwmatch(wchar_t *pattern,wchar_t *string,wchar_t *string_end,_Bool no_leading_period,\n                     int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar9;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  int *piVar10;\n  byte *pbVar11;\n  wchar_t wVar12;\n  byte *pbVar13;\n  undefined3 in_register_0000001c;\n  uint unaff_s0;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  undefined4 *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  wchar_t *unaff_s5;\n  wchar_t *pwVar19;\n  byte *pbVar20;\n  byte *unaff_s6;\n  int iVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  undefined1 *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  int iVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  wchar_t str [257];\n  char s [257];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar25 = PTR_LAB_00049218;\n  pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period);\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar21 = *pattern;\n  pbVar18 = (byte *)string_end;\n  pwVar19 = string;\n  if (iVar21 != 0) {\n    unaff_s5 = pattern + 1;\n    unaff_s1 = flags & 2;\n    unaff_s0 = flags & 0x10;\n    unaff_s6 = pbVar17;\n    do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);\n  }\n  uVar5 = 0;\n  if (pwVar19 != string_end) {\n    if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return uVar5;\n  }\n  puVar25 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar25 + 0x25b40;\n  puVar24 = auStack_5f0;\n  puVar15 = *(undefined4 **)(puVar25 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar22 = (byte *)((int)string + 1);\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar15;\n  pbVar11 = (byte *)string;\n  pbVar13 = pbVar18;\n  pbStack_5c4 = pbVar17;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string);\n  iVar21 = (int)(char)*(byte *)((int)string + 1);\n  puVar25 = puStack_5d8;\n  if (iVar21 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar6 = auStack_5f0;\n    unaff_s6 = pbVar22;\nLAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);\n  }\nLAB_0002b7b4:\n  pcVar26 = *(code **)(puVar25 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar15) {\n    return -1;\n  }\n  pcVar32 = internal_fnmatch;\n  pbVar20 = pbStack_5b4;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x25450;\n  puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c);\n  *(undefined1 **)(puVar24 + -8) = auStack_5f0;\n  *(wchar_t **)(puVar24 + -0x1c) = string_end;\n  *(code **)(puVar24 + -0x160) = pcVar27;\n  *(code **)(puVar24 + -4) = pcVar32;\n  *(byte **)(puVar24 + -0xc) = pbVar22;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x14) = unaff_s5;\n  *(byte **)(puVar24 + -0x18) = pbVar18;\n  *(undefined4 **)(puVar24 + -0x20) = puVar15;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(wchar_t **)(puVar24 + -0x28) = string;\n  *(undefined4 **)(puVar24 + -0x144) = puVar7;\n  *(byte **)(puVar24 + -0x154) = pbVar20 + 1;\n  pbVar16 = (byte *)(uint)*pbVar20;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar7;\n  pbVar23 = *(byte **)(pcVar26 + 0x1d488);\n  pbVar22 = pbVar13;\n  pbVar30 = pbVar11;\n  if (pbVar16 != (byte *)0x0) {\n    uVar5 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar5 & 2;\n    string = (wchar_t *)(uVar5 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar5 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);\n    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;\n    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;\n    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;\n    pbVar18 = pbVar20;\n    unaff_s6 = pbVar17;\n    do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);\n  }\n  uVar5 = 0;\n  if (pbVar30 != pbVar13) {\n    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);\n    if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar24 + -0x2c);\n  if (iVar3 == **(int **)(puVar24 + -0x144)) {\n    return uVar5;\n  }\n  pcVar26 = *(code **)(pcVar27 + -0x7c10);\n  pcVar32 = gnu_fnmatch;\n  (*pcVar26)();\n  puVar6 = puVar24 + -0x1e0;\n  pcVar27 = *(code **)(pcVar26 + 0x1cbc4);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar8 = *(int **)(pcVar26 + 0x1cc28);\n  *(byte **)(puVar24 + -0x180) = pbVar30;\n  *(byte **)(puVar24 + -0x198) = pbVar16;\n  *(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c;\n  *(code **)(puVar24 + -0x17c) = pcVar32;\n  *(byte **)(puVar24 + -0x184) = pbVar23;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x18c) = unaff_s5;\n  *(byte **)(puVar24 + -400) = pbVar18;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(wchar_t **)(puVar24 + -0x1a0) = string;\n  *(int *)(puVar24 + -0x1b4) = iVar3;\n  *(byte **)(puVar24 + -0x1b8) = pbVar11;\n  *(int *)(puVar24 + -0x1a4) = *piVar8;\n  iVar3 = (*pcVar27)();\n  iVar21 = *(int *)(puVar24 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);\n    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);\n    *(byte **)(puVar24 + -0x1d0) = pbVar22;\n    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));\n    iVar3 = *(int *)(puVar24 + -0x1c8);\n    puVar6 = puVar24 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }\n  iVar21 = *(int *)(puVar24 + -0x1a4);\n  pcVar26 = *(code **)(iVar3 + -0x7c10);\n  if (iVar21 == *piVar8) {\n    return (int)pbVar11;\n  }\n  pcVar32 = rpl_getcwd;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x244c0;\n  puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc);\n  *(undefined4 **)(puVar6 + -0xf4) = puVar15;\n  *(code **)(puVar6 + -0x110) = pcVar27;\n  *(code **)(puVar6 + -4) = pcVar32;\n  *(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0;\n  *(byte **)(puVar6 + -0xc) = pbVar23;\n  *(byte **)(puVar6 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar6 + -0x14) = unaff_s5;\n  *(byte **)(puVar6 + -0x18) = pbVar18;\n  *(byte **)(puVar6 + -0x1c) = pbVar13;\n  *(byte **)(puVar6 + -0x20) = pbVar22;\n  *(int **)(puVar6 + -0x24) = piVar8;\n  *(byte **)(puVar6 + -0x28) = pbVar11;\n  *(byte **)(puVar6 + 4) = pbVar17;\n  *(int *)(puVar6 + -0x100) = iVar21;\n  *(undefined4 *)(puVar6 + -0x2c) = *puVar15;\n  if (pbVar17 == (byte *)0x0) {\n    if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n    *puVar15 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar10 = *(int **)(puVar6 + -0xf4);\nLAB_0002d15c:\n  iVar3 = *(int *)(puVar6 + -0x2c);\n  if (iVar3 != *piVar10) {\n    pcVar26 = *(code **)(pcVar27 + -0x7c10);\n    uVar33 = 0x2d36c;\n    (*pcVar26)();\n    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;\n    *(undefined4 *)(puVar6 + -300) = uVar33;\n    *(byte **)(puVar6 + -0x130) = pbVar22;\n    *(int **)(puVar6 + -0x134) = piVar8;\n    *(byte **)(puVar6 + -0x138) = pbVar11;\n    if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }\n    return iVar3;\n  }\n  return *(int *)(puVar6 + -0x108);\ncode_r0x0002d0ec:\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar10[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar26 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }\n    pcVar26 = *(code **)(iVar3 + -0x7d38);\n    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar17 = (byte *)((int)piVar10 + 0x13);\n  *(undefined4 *)(puVar6 + -0x118) = 0x100;\n  pbVar13 = pbVar18;\n  iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (iVar21 != 0) goto LAB_0002cf10;\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))) goto LAB_0002cf18;\n  pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108));\n  pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (pbVar20 <= pbVar11) {\n    pbVar16 = *(byte **)(puVar6 + -0xf8);\n    if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar30 = pbVar16;\n    if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }\n    pbVar23 = pbVar30 + (int)pbVar16;\n    pcVar26 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar6 + -0x104) = pbVar30;\n    pbVar13 = pbVar23;\n    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n    iVar3 = *(int *)(puVar6 + -0x110);\n    if (iVar21 == 0) goto LAB_0002d338;\n    uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);\n    iVar3 = *(int *)(puVar6 + -0x110);\n    *(byte **)(puVar6 + -0xf8) = pbVar23;\n    *(undefined4 *)(puVar6 + -0xe0) = uVar33;\n    *(int *)(puVar6 + -0x108) = iVar21;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11);\n  iVar28 = *(int *)(puVar6 + -0x110);\n  iVar31 = *(int *)(puVar6 + -0xd8);\n  *(int *)(puVar6 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4);\n  *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "int internal_fnwmatch(wchar_t *pattern,wchar_t *string,wchar_t *string_end,_Bool no_leading_period,\n                     int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar9;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  int *piVar10;\n  byte *pbVar11;\n  wchar_t wVar12;\n  byte *pbVar13;\n  undefined3 in_register_0000001c;\n  uint unaff_s0;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  undefined4 *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  wchar_t *unaff_s5;\n  wchar_t *pwVar19;\n  byte *pbVar20;\n  byte *unaff_s6;\n  int iVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  undefined1 *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  int iVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  wchar_t str [257];\n  char s [257];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar25 = PTR_LAB_00049218;\n  pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period);\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar21 = *pattern;\n  pbVar18 = (byte *)string_end;\n  pwVar19 = string;\n  if (iVar21 != 0) {\n    unaff_s5 = pattern + 1;\n    unaff_s1 = flags & 2;\n    unaff_s0 = flags & 0x10;\n    unaff_s6 = pbVar17;\n    do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);\n  }\n  uVar5 = 0;\n  if (pwVar19 != string_end) {\n    if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return uVar5;\n  }\n  puVar25 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar25 + 0x25b40;\n  puVar24 = auStack_5f0;\n  puVar15 = *(undefined4 **)(puVar25 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar22 = (byte *)((int)string + 1);\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar15;\n  pbVar11 = (byte *)string;\n  pbVar13 = pbVar18;\n  pbStack_5c4 = pbVar17;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string);\n  iVar21 = (int)(char)*(byte *)((int)string + 1);\n  puVar25 = puStack_5d8;\n  if (iVar21 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar6 = auStack_5f0;\n    unaff_s6 = pbVar22;\nLAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);\n  }\nLAB_0002b7b4:\n  pcVar26 = *(code **)(puVar25 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar15) {\n    return -1;\n  }\n  pcVar32 = internal_fnmatch;\n  pbVar20 = pbStack_5b4;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x25450;\n  puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c);\n  *(undefined1 **)(puVar24 + -8) = auStack_5f0;\n  *(wchar_t **)(puVar24 + -0x1c) = string_end;\n  *(code **)(puVar24 + -0x160) = pcVar27;\n  *(code **)(puVar24 + -4) = pcVar32;\n  *(byte **)(puVar24 + -0xc) = pbVar22;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x14) = unaff_s5;\n  *(byte **)(puVar24 + -0x18) = pbVar18;\n  *(undefined4 **)(puVar24 + -0x20) = puVar15;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(wchar_t **)(puVar24 + -0x28) = string;\n  *(undefined4 **)(puVar24 + -0x144) = puVar7;\n  *(byte **)(puVar24 + -0x154) = pbVar20 + 1;\n  pbVar16 = (byte *)(uint)*pbVar20;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar7;\n  pbVar23 = *(byte **)(pcVar26 + 0x1d488);\n  pbVar22 = pbVar13;\n  pbVar30 = pbVar11;\n  if (pbVar16 != (byte *)0x0) {\n    uVar5 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar5 & 2;\n    string = (wchar_t *)(uVar5 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar5 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);\n    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;\n    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;\n    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;\n    pbVar18 = pbVar20;\n    unaff_s6 = pbVar17;\n    do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);\n  }\n  uVar5 = 0;\n  if (pbVar30 != pbVar13) {\n    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);\n    if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar24 + -0x2c);\n  if (iVar3 == **(int **)(puVar24 + -0x144)) {\n    return uVar5;\n  }\n  pcVar26 = *(code **)(pcVar27 + -0x7c10);\n  pcVar32 = gnu_fnmatch;\n  (*pcVar26)();\n  puVar6 = puVar24 + -0x1e0;\n  pcVar27 = *(code **)(pcVar26 + 0x1cbc4);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar8 = *(int **)(pcVar26 + 0x1cc28);\n  *(byte **)(puVar24 + -0x180) = pbVar30;\n  *(byte **)(puVar24 + -0x198) = pbVar16;\n  *(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c;\n  *(code **)(puVar24 + -0x17c) = pcVar32;\n  *(byte **)(puVar24 + -0x184) = pbVar23;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x18c) = unaff_s5;\n  *(byte **)(puVar24 + -400) = pbVar18;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(wchar_t **)(puVar24 + -0x1a0) = string;\n  *(int *)(puVar24 + -0x1b4) = iVar3;\n  *(byte **)(puVar24 + -0x1b8) = pbVar11;\n  *(int *)(puVar24 + -0x1a4) = *piVar8;\n  iVar3 = (*pcVar27)();\n  iVar21 = *(int *)(puVar24 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);\n    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);\n    *(byte **)(puVar24 + -0x1d0) = pbVar22;\n    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));\n    iVar3 = *(int *)(puVar24 + -0x1c8);\n    puVar6 = puVar24 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }\n  iVar21 = *(int *)(puVar24 + -0x1a4);\n  pcVar26 = *(code **)(iVar3 + -0x7c10);\n  if (iVar21 == *piVar8) {\n    return (int)pbVar11;\n  }\n  pcVar32 = rpl_getcwd;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x244c0;\n  puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc);\n  *(undefined4 **)(puVar6 + -0xf4) = puVar15;\n  *(code **)(puVar6 + -0x110) = pcVar27;\n  *(code **)(puVar6 + -4) = pcVar32;\n  *(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0;\n  *(byte **)(puVar6 + -0xc) = pbVar23;\n  *(byte **)(puVar6 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar6 + -0x14) = unaff_s5;\n  *(byte **)(puVar6 + -0x18) = pbVar18;\n  *(byte **)(puVar6 + -0x1c) = pbVar13;\n  *(byte **)(puVar6 + -0x20) = pbVar22;\n  *(int **)(puVar6 + -0x24) = piVar8;\n  *(byte **)(puVar6 + -0x28) = pbVar11;\n  *(byte **)(puVar6 + 4) = pbVar17;\n  *(int *)(puVar6 + -0x100) = iVar21;\n  *(undefined4 *)(puVar6 + -0x2c) = *puVar15;\n  if (pbVar17 == (byte *)0x0) {\n    if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n    *puVar15 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar10 = *(int **)(puVar6 + -0xf4);\nLAB_0002d15c:\n  iVar3 = *(int *)(puVar6 + -0x2c);\n  if (iVar3 != *piVar10) {\n    pcVar26 = *(code **)(pcVar27 + -0x7c10);\n    uVar33 = 0x2d36c;\n    (*pcVar26)();\n    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;\n    *(undefined4 *)(puVar6 + -300) = uVar33;\n    *(byte **)(puVar6 + -0x130) = pbVar22;\n    *(int **)(puVar6 + -0x134) = piVar8;\n    *(byte **)(puVar6 + -0x138) = pbVar11;\n    if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }\n    return iVar3;\n  }\n  return *(int *)(puVar6 + -0x108);\ncode_r0x0002d0ec:\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar10[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar26 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }\n    pcVar26 = *(code **)(iVar3 + -0x7d38);\n    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar17 = (byte *)((int)piVar10 + 0x13);\n  *(undefined4 *)(puVar6 + -0x118) = 0x100;\n  pbVar13 = pbVar18;\n  iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (iVar21 != 0) goto LAB_0002cf10;\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))) goto LAB_0002cf18;\n  pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108));\n  pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (pbVar20 <= pbVar11) {\n    pbVar16 = *(byte **)(puVar6 + -0xf8);\n    if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar30 = pbVar16;\n    if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }\n    pbVar23 = pbVar30 + (int)pbVar16;\n    pcVar26 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar6 + -0x104) = pbVar30;\n    pbVar13 = pbVar23;\n    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n    iVar3 = *(int *)(puVar6 + -0x110);\n    if (iVar21 == 0) goto LAB_0002d338;\n    uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);\n    iVar3 = *(int *)(puVar6 + -0x110);\n    *(byte **)(puVar6 + -0xf8) = pbVar23;\n    *(undefined4 *)(puVar6 + -0xe0) = uVar33;\n    *(int *)(puVar6 + -0x108) = iVar21;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11);\n  iVar28 = *(int *)(puVar6 + -0x110);\n  iVar31 = *(int *)(puVar6 + -0xd8);\n  *(int *)(puVar6 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4);\n  *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0);\n  goto LAB_0002ce58;\n}" primitive_type (function_declarator "internal_fnwmatch(wchar_t *pattern,wchar_t *string,wchar_t *string_end,_Bool no_leading_period,\n                     int flags)" identifier (parameter_list "(wchar_t *pattern,wchar_t *string,wchar_t *string_end,_Bool no_leading_period,\n                     int flags)" ( (parameter_declaration "wchar_t *pattern" type_identifier (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "wchar_t *string" type_identifier (pointer_declarator "*string" * identifier)) , (parameter_declaration "wchar_t *string_end" type_identifier (pointer_declarator "*string_end" * identifier)) , (parameter_declaration "_Bool no_leading_period" type_identifier identifier) , (parameter_declaration "int flags" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar9;\n  undefined1 *puVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  int *piVar10;\n  byte *pbVar11;\n  wchar_t wVar12;\n  byte *pbVar13;\n  undefined3 in_register_0000001c;\n  uint unaff_s0;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  undefined4 *puVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  wchar_t *unaff_s5;\n  wchar_t *pwVar19;\n  byte *pbVar20;\n  byte *unaff_s6;\n  int iVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  undefined1 *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  int iVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  int iVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  wchar_t str [257];\n  char s [257];\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar25 = PTR_LAB_00049218;\n  pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period);\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar21 = *pattern;\n  pbVar18 = (byte *)string_end;\n  pwVar19 = string;\n  if (iVar21 != 0) {\n    unaff_s5 = pattern + 1;\n    unaff_s1 = flags & 2;\n    unaff_s0 = flags & 0x10;\n    unaff_s6 = pbVar17;\n    do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);\n  }\n  uVar5 = 0;\n  if (pwVar19 != string_end) {\n    if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return uVar5;\n  }\n  puVar25 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar25 + 0x25b40;\n  puVar24 = auStack_5f0;\n  puVar15 = *(undefined4 **)(puVar25 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar22 = (byte *)((int)string + 1);\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar15;\n  pbVar11 = (byte *)string;\n  pbVar13 = pbVar18;\n  pbStack_5c4 = pbVar17;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string);\n  iVar21 = (int)(char)*(byte *)((int)string + 1);\n  puVar25 = puStack_5d8;\n  if (iVar21 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar6 = auStack_5f0;\n    unaff_s6 = pbVar22;\nLAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);\n  }\nLAB_0002b7b4:\n  pcVar26 = *(code **)(puVar25 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar15) {\n    return -1;\n  }\n  pcVar32 = internal_fnmatch;\n  pbVar20 = pbStack_5b4;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x25450;\n  puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c);\n  *(undefined1 **)(puVar24 + -8) = auStack_5f0;\n  *(wchar_t **)(puVar24 + -0x1c) = string_end;\n  *(code **)(puVar24 + -0x160) = pcVar27;\n  *(code **)(puVar24 + -4) = pcVar32;\n  *(byte **)(puVar24 + -0xc) = pbVar22;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x14) = unaff_s5;\n  *(byte **)(puVar24 + -0x18) = pbVar18;\n  *(undefined4 **)(puVar24 + -0x20) = puVar15;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(wchar_t **)(puVar24 + -0x28) = string;\n  *(undefined4 **)(puVar24 + -0x144) = puVar7;\n  *(byte **)(puVar24 + -0x154) = pbVar20 + 1;\n  pbVar16 = (byte *)(uint)*pbVar20;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar7;\n  pbVar23 = *(byte **)(pcVar26 + 0x1d488);\n  pbVar22 = pbVar13;\n  pbVar30 = pbVar11;\n  if (pbVar16 != (byte *)0x0) {\n    uVar5 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar5 & 2;\n    string = (wchar_t *)(uVar5 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar5 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);\n    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;\n    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;\n    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;\n    pbVar18 = pbVar20;\n    unaff_s6 = pbVar17;\n    do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);\n  }\n  uVar5 = 0;\n  if (pbVar30 != pbVar13) {\n    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);\n    if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar24 + -0x2c);\n  if (iVar3 == **(int **)(puVar24 + -0x144)) {\n    return uVar5;\n  }\n  pcVar26 = *(code **)(pcVar27 + -0x7c10);\n  pcVar32 = gnu_fnmatch;\n  (*pcVar26)();\n  puVar6 = puVar24 + -0x1e0;\n  pcVar27 = *(code **)(pcVar26 + 0x1cbc4);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar8 = *(int **)(pcVar26 + 0x1cc28);\n  *(byte **)(puVar24 + -0x180) = pbVar30;\n  *(byte **)(puVar24 + -0x198) = pbVar16;\n  *(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c;\n  *(code **)(puVar24 + -0x17c) = pcVar32;\n  *(byte **)(puVar24 + -0x184) = pbVar23;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar24 + -0x18c) = unaff_s5;\n  *(byte **)(puVar24 + -400) = pbVar18;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(wchar_t **)(puVar24 + -0x1a0) = string;\n  *(int *)(puVar24 + -0x1b4) = iVar3;\n  *(byte **)(puVar24 + -0x1b8) = pbVar11;\n  *(int *)(puVar24 + -0x1a4) = *piVar8;\n  iVar3 = (*pcVar27)();\n  iVar21 = *(int *)(puVar24 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);\n    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);\n    *(byte **)(puVar24 + -0x1d0) = pbVar22;\n    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));\n    iVar3 = *(int *)(puVar24 + -0x1c8);\n    puVar6 = puVar24 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }\n  iVar21 = *(int *)(puVar24 + -0x1a4);\n  pcVar26 = *(code **)(iVar3 + -0x7c10);\n  if (iVar21 == *piVar8) {\n    return (int)pbVar11;\n  }\n  pcVar32 = rpl_getcwd;\n  (*pcVar26)();\n  pcVar27 = pcVar26 + 0x244c0;\n  puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc);\n  *(undefined4 **)(puVar6 + -0xf4) = puVar15;\n  *(code **)(puVar6 + -0x110) = pcVar27;\n  *(code **)(puVar6 + -4) = pcVar32;\n  *(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0;\n  *(byte **)(puVar6 + -0xc) = pbVar23;\n  *(byte **)(puVar6 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar6 + -0x14) = unaff_s5;\n  *(byte **)(puVar6 + -0x18) = pbVar18;\n  *(byte **)(puVar6 + -0x1c) = pbVar13;\n  *(byte **)(puVar6 + -0x20) = pbVar22;\n  *(int **)(puVar6 + -0x24) = piVar8;\n  *(byte **)(puVar6 + -0x28) = pbVar11;\n  *(byte **)(puVar6 + 4) = pbVar17;\n  *(int *)(puVar6 + -0x100) = iVar21;\n  *(undefined4 *)(puVar6 + -0x2c) = *puVar15;\n  if (pbVar17 == (byte *)0x0) {\n    if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n    *puVar15 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar10 = *(int **)(puVar6 + -0xf4);\nLAB_0002d15c:\n  iVar3 = *(int *)(puVar6 + -0x2c);\n  if (iVar3 != *piVar10) {\n    pcVar26 = *(code **)(pcVar27 + -0x7c10);\n    uVar33 = 0x2d36c;\n    (*pcVar26)();\n    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;\n    *(undefined4 *)(puVar6 + -300) = uVar33;\n    *(byte **)(puVar6 + -0x130) = pbVar22;\n    *(int **)(puVar6 + -0x134) = piVar8;\n    *(byte **)(puVar6 + -0x138) = pbVar11;\n    if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }\n    return iVar3;\n  }\n  return *(int *)(puVar6 + -0x108);\ncode_r0x0002d0ec:\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar10[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar26 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }\n    pcVar26 = *(code **)(iVar3 + -0x7d38);\n    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar17 = (byte *)((int)piVar10 + 0x13);\n  *(undefined4 *)(puVar6 + -0x118) = 0x100;\n  pbVar13 = pbVar18;\n  iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (iVar21 != 0) goto LAB_0002cf10;\n  pcVar26 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))) goto LAB_0002cf18;\n  pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108));\n  pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17);\n  iVar3 = *(int *)(puVar6 + -0x110);\n  if (pbVar20 <= pbVar11) {\n    pbVar16 = *(byte **)(puVar6 + -0xf8);\n    if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar30 = pbVar16;\n    if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }\n    pbVar23 = pbVar30 + (int)pbVar16;\n    pcVar26 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar6 + -0x104) = pbVar30;\n    pbVar13 = pbVar23;\n    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n    iVar3 = *(int *)(puVar6 + -0x110);\n    if (iVar21 == 0) goto LAB_0002d338;\n    uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);\n    iVar3 = *(int *)(puVar6 + -0x110);\n    *(byte **)(puVar6 + -0xf8) = pbVar23;\n    *(undefined4 *)(puVar6 + -0xe0) = uVar33;\n    *(int *)(puVar6 + -0x108) = iVar21;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11);\n  iVar28 = *(int *)(puVar6 + -0x110);\n  iVar31 = *(int *)(puVar6 + -0xd8);\n  *(int *)(puVar6 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4);\n  *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "wchar_t wVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "uint unaff_s0;" type_identifier identifier ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "wchar_t *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "wchar_t *pwVar19;" type_identifier (pointer_declarator "*pwVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "undefined1 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "undefined1 auStack_5f0 [24];" type_identifier (array_declarator "auStack_5f0 [24]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_5d8;" type_identifier (pointer_declarator "*puStack_5d8" * identifier) ;) (declaration "int *piStack_5d0;" primitive_type (pointer_declarator "*piStack_5d0" * identifier) ;) (declaration "byte *pbStack_5cc;" type_identifier (pointer_declarator "*pbStack_5cc" * identifier) ;) (declaration "int iStack_5c8;" primitive_type identifier ;) (declaration "byte *pbStack_5c4;" type_identifier (pointer_declarator "*pbStack_5c4" * identifier) ;) (declaration "uint uStack_5c0;" type_identifier identifier ;) (declaration "int *piStack_5bc;" primitive_type (pointer_declarator "*piStack_5bc" * identifier) ;) (declaration "int iStack_5b8;" primitive_type identifier ;) (declaration "byte *pbStack_5b4;" type_identifier (pointer_declarator "*pbStack_5b4" * identifier) ;) (declaration "uint uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "byte bStack_575;" type_identifier identifier ;) (declaration "wchar_t str [257];" type_identifier (array_declarator "str [257]" identifier [ number_literal ]) ;) (declaration "char s [257];" primitive_type (array_declarator "s [257]" identifier [ number_literal ]) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar25 = PTR_LAB_00049218;" (assignment_expression "puVar25 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period);" (assignment_expression "pbVar17 = (byte *)CONCAT31(in_register_0000001c,no_leading_period)" identifier = (cast_expression "(byte *)CONCAT31(in_register_0000001c,no_leading_period)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(in_register_0000001c,no_leading_period)" identifier (argument_list "(in_register_0000001c,no_leading_period)" ( identifier , identifier ))))) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" * (cast_expression "(int *)PTR___stack_chk_guard_000495fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar21 = *pattern;" (assignment_expression "iVar21 = *pattern" identifier = (pointer_expression "*pattern" * identifier)) ;) (expression_statement "pbVar18 = (byte *)string_end;" (assignment_expression "pbVar18 = (byte *)string_end" identifier = (cast_expression "(byte *)string_end" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pwVar19 = string;" (assignment_expression "pwVar19 = string" identifier = identifier) ;) (if_statement "if (iVar21 != 0) {\n    unaff_s5 = pattern + 1;\n    unaff_s1 = flags & 2;\n    unaff_s0 = flags & 0x10;\n    unaff_s6 = pbVar17;\n    do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = pattern + 1;\n    unaff_s1 = flags & 2;\n    unaff_s0 = flags & 0x10;\n    unaff_s6 = pbVar17;\n    do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);\n  }" { (expression_statement "unaff_s5 = pattern + 1;" (assignment_expression "unaff_s5 = pattern + 1" identifier = (binary_expression "pattern + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = flags & 2;" (assignment_expression "unaff_s1 = flags & 2" identifier = (binary_expression "flags & 2" identifier & number_literal)) ;) (expression_statement "unaff_s0 = flags & 0x10;" (assignment_expression "unaff_s0 = flags & 0x10" identifier = (binary_expression "flags & 0x10" identifier & number_literal)) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (do_statement "do {\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar21 != 0);" do (compound_statement "{\n      if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }\n      if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }\n      if (string_end == pwVar19) goto LAB_0002ad44;\n      iVar4 = *pwVar19;\n      if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }\n      uVar5 = 1;\n      if (iVar4 != iVar21) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar21 = *unaff_s5;\n      pwVar19 = pwVar19 + 1;\n      unaff_s5 = unaff_s5 + 1;\n    }" { (if_statement "if (unaff_s0 != 0) {\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);\n      }" { (expression_statement "iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21);" (assignment_expression "iVar21 = (*(code *)PTR_towlower_000495f0)(iVar21)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar21)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar21)" ( identifier )))) ;) })) (if_statement "if (iVar21 - 0x21U < 0x3c) {\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }" if (parenthesized_expression "(iVar21 - 0x21U < 0x3c)" ( (binary_expression "iVar21 - 0x21U < 0x3c" (binary_expression "iVar21 - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();\n        return iVar3;\n      }" { comment comment (expression_statement "iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))();" (assignment_expression "iVar3 = (*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00))" * (cast_expression "(code *)(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00))" ( (binary_expression "&_gp + *(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)" * (cast_expression "(int *)(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00)" ( (binary_expression "puVar25 + (iVar21 - 0x21U) * 4 + 0x7b00" (binary_expression "puVar25 + (iVar21 - 0x21U) * 4" identifier + (binary_expression "(iVar21 - 0x21U) * 4" (parenthesized_expression "(iVar21 - 0x21U)" ( (binary_expression "iVar21 - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (string_end == pwVar19) goto LAB_0002ad44;" if (parenthesized_expression "(string_end == pwVar19)" ( (binary_expression "string_end == pwVar19" identifier == identifier) )) (goto_statement "goto LAB_0002ad44;" goto statement_identifier ;)) (expression_statement "iVar4 = *pwVar19;" (assignment_expression "iVar4 = *pwVar19" identifier = (pointer_expression "*pwVar19" * identifier)) ;) (if_statement "if (unaff_s0 != 0) {\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);\n      }" { (expression_statement "iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4);" (assignment_expression "iVar4 = (*(code *)PTR_towlower_000495f0)(iVar4)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar4)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar4)" ( identifier )))) ;) })) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (iVar4 != iVar21) goto LAB_0002ad48;" if (parenthesized_expression "(iVar4 != iVar21)" ( (binary_expression "iVar4 != iVar21" identifier != identifier) )) (goto_statement "goto LAB_0002ad48;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar21 = *unaff_s5;" (assignment_expression "iVar21 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "pwVar19 = pwVar19 + 1;" (assignment_expression "pwVar19 = pwVar19 + 1" identifier = (binary_expression "pwVar19 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (pwVar19 != string_end) {\n    if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pwVar19 != string_end)" ( (binary_expression "pwVar19 != string_end" identifier != identifier) )) (compound_statement "{\n    if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }\n  }" { (if_statement "if ((flags & 8U) == 0) {\nLAB_0002ad44:\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }" if (parenthesized_expression "((flags & 8U) == 0)" ( (binary_expression "(flags & 8U) == 0" (parenthesized_expression "(flags & 8U)" ( (binary_expression "flags & 8U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002ad44:\n      uVar5 = 1;\n    }" { (labeled_statement "LAB_0002ad44:\n      uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }" else (compound_statement "{\n      uVar5 = (uint)(*pwVar19 != 0x2f);\n    }" { (expression_statement "uVar5 = (uint)(*pwVar19 != 0x2f);" (assignment_expression "uVar5 = (uint)(*pwVar19 != 0x2f)" identifier = (call_expression "(uint)(*pwVar19 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pwVar19 != 0x2f)" ( (binary_expression "*pwVar19 != 0x2f" (pointer_expression "*pwVar19" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n    return uVar5;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "puVar25 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar25 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_5d8 = puVar25 + 0x25b40;" (assignment_expression "puStack_5d8 = puVar25 + 0x25b40" identifier = (binary_expression "puVar25 + 0x25b40" identifier + number_literal)) ;) (expression_statement "puVar24 = auStack_5f0;" (assignment_expression "puVar24 = auStack_5f0" identifier = identifier) ;) (expression_statement "puVar15 = *(undefined4 **)(puVar25 + 0x1df5c);" (assignment_expression "puVar15 = *(undefined4 **)(puVar25 + 0x1df5c)" identifier = (pointer_expression "*(undefined4 **)(puVar25 + 0x1df5c)" * (cast_expression "(undefined4 **)(puVar25 + 0x1df5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1df5c)" ( (binary_expression "puVar25 + 0x1df5c" identifier + number_literal) ))))) ;) (expression_statement "uStack_5c0 = (uint)bStack_575;" (assignment_expression "uStack_5c0 = (uint)bStack_575" identifier = (cast_expression "(uint)bStack_575" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar22 = (byte *)((int)string + 1);" (assignment_expression "pbVar22 = (byte *)((int)string + 1)" identifier = (cast_expression "(byte *)((int)string + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string + 1)" ( (binary_expression "(int)string + 1" (cast_expression "(int)string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iStack_5b8 = 0;" (assignment_expression "iStack_5b8 = 0" identifier = number_literal) ;) (expression_statement "pbStack_5b4 = (byte *)*puVar15;" (assignment_expression "pbStack_5b4 = (byte *)*puVar15" identifier = (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "pbVar11 = (byte *)string;" (assignment_expression "pbVar11 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = pbVar18;" (assignment_expression "pbVar13 = pbVar18" identifier = identifier) ;) (expression_statement "pbStack_5c4 = pbVar17;" (assignment_expression "pbStack_5c4 = pbVar17" identifier = identifier) ;) (expression_statement "uStack_5b0 = unaff_s0;" (assignment_expression "uStack_5b0 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_5ac = unaff_s1;" (assignment_expression "uStack_5ac = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string);" (assignment_expression "pbStack_5cc = (byte *)(**(code **)(puVar25 + 0x1de9c))(string)" identifier = (cast_expression "(byte *)(**(code **)(puVar25 + 0x1de9c))(string)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar25 + 0x1de9c))(string)" (parenthesized_expression "(**(code **)(puVar25 + 0x1de9c))" ( (pointer_expression "**(code **)(puVar25 + 0x1de9c)" * (pointer_expression "*(code **)(puVar25 + 0x1de9c)" * (cast_expression "(code **)(puVar25 + 0x1de9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1de9c)" ( (binary_expression "puVar25 + 0x1de9c" identifier + number_literal) ))))) )) (argument_list "(string)" ( identifier ))))) ;) (expression_statement "iVar21 = (int)(char)*(byte *)((int)string + 1);" (assignment_expression "iVar21 = (int)(char)*(byte *)((int)string + 1)" identifier = (cast_expression "(int)(char)*(byte *)((int)string + 1)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*(byte *)((int)string + 1)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)((int)string + 1)" * (cast_expression "(byte *)((int)string + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string + 1)" ( (binary_expression "(int)string + 1" (cast_expression "(int)string" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "puVar25 = puStack_5d8;" (assignment_expression "puVar25 = puStack_5d8" identifier = identifier) ;) (if_statement "if (iVar21 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar6 = auStack_5f0;\n    unaff_s6 = pbVar22;\nLAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (wchar_t *)0x0;\n    string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar6 = auStack_5f0;\n    unaff_s6 = pbVar22;\nLAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);\n  }" { (expression_statement "unaff_s5 = (wchar_t *)0x0;" (assignment_expression "unaff_s5 = (wchar_t *)0x0" identifier = (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8);" (assignment_expression "string_end = *(wchar_t **)(puStack_5d8 + -0x7fd8)" identifier = (pointer_expression "*(wchar_t **)(puStack_5d8 + -0x7fd8)" * (cast_expression "(wchar_t **)(puStack_5d8 + -0x7fd8)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_5d8 + -0x7fd8)" ( (binary_expression "puStack_5d8 + -0x7fd8" identifier + number_literal) ))))) ;) (expression_statement "piStack_5bc = &iStack_5b8;" (assignment_expression "piStack_5bc = &iStack_5b8" identifier = (pointer_expression "&iStack_5b8" & identifier)) ;) (expression_statement "unaff_s1 = (uint)(iVar3 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(iVar3 - 0x3fU < 2)" identifier = (call_expression "(uint)(iVar3 - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - 0x3fU < 2)" ( (binary_expression "iVar3 - 0x3fU < 2" (binary_expression "iVar3 - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;" (assignment_expression "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c" identifier = (binary_expression "*(int *)(puStack_5d8 + -0x7fc8) + 0x671c" (pointer_expression "*(int *)(puStack_5d8 + -0x7fc8)" * (cast_expression "(int *)(puStack_5d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_5d8 + -0x7fc8)" ( (binary_expression "puStack_5d8 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar6 = auStack_5f0;" (assignment_expression "puVar6 = auStack_5f0" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar22;" (assignment_expression "unaff_s6 = pbVar22" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);" statement_identifier : (do_statement "do {\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    } while (iVar21 != 0);" do (compound_statement "{\n      puVar24 = puVar6;\n      if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }\n      puVar6 = puVar24;\n    }" { (expression_statement "puVar24 = puVar6;" (assignment_expression "puVar24 = puVar6" identifier = identifier) ;) (if_statement "if (iVar21 == 0x5b) {\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }\n      else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }" if (parenthesized_expression "(iVar21 == 0x5b)" ( (binary_expression "iVar21 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }\n        bVar9 = pbVar22[1];\n        pbVar20 = pbVar22 + 1;\n        if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }\n        if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }\n        pbVar11 = (byte *)0x5d;\n        while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }\n        iVar21 = (int)(char)pbVar20[1];\n      }" { (if_statement "if (string_end[-0x160c] == 0) {\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }" if (parenthesized_expression "(string_end[-0x160c] == 0)" ( (binary_expression "string_end[-0x160c] == 0" (subscript_expression "string_end[-0x160c]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);\n          wVar12 = -1;\n          if (iVar21 != 0) {\n            wVar12 = 1;\n          }\n          string_end[-0x160c] = wVar12;\n          puVar25 = puStack_5d8;\n        }" { (expression_statement "iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8);" (assignment_expression "iVar21 = (**(code **)(puVar25 + -0x7c74))(iStack_5c8)" identifier = (call_expression "(**(code **)(puVar25 + -0x7c74))(iStack_5c8)" (parenthesized_expression "(**(code **)(puVar25 + -0x7c74))" ( (pointer_expression "**(code **)(puVar25 + -0x7c74)" * (pointer_expression "*(code **)(puVar25 + -0x7c74)" * (cast_expression "(code **)(puVar25 + -0x7c74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7c74)" ( (binary_expression "puVar25 + -0x7c74" identifier + number_literal) ))))) )) (argument_list "(iStack_5c8)" ( identifier )))) ;) (expression_statement "wVar12 = -1;" (assignment_expression "wVar12 = -1" identifier = number_literal) ;) (if_statement "if (iVar21 != 0) {\n            wVar12 = 1;\n          }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n            wVar12 = 1;\n          }" { (expression_statement "wVar12 = 1;" (assignment_expression "wVar12 = 1" identifier = number_literal) ;) })) (expression_statement "string_end[-0x160c] = wVar12;" (assignment_expression "string_end[-0x160c] = wVar12" (subscript_expression "string_end[-0x160c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puStack_5d8;" (assignment_expression "puVar25 = puStack_5d8" identifier = identifier) ;) })) (expression_statement "bVar9 = pbVar22[1];" (assignment_expression "bVar9 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar20 = pbVar22 + 1;" (assignment_expression "pbVar20 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))) {\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }" if (parenthesized_expression "((bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e))))" ( (binary_expression "(bVar9 == 0x21) || ((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))" (parenthesized_expression "(bVar9 == 0x21)" ( (binary_expression "bVar9 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((string_end[-0x160c] < 0 && (bVar9 == 0x5e)))" ( (parenthesized_expression "(string_end[-0x160c] < 0 && (bVar9 == 0x5e))" ( (binary_expression "string_end[-0x160c] < 0 && (bVar9 == 0x5e)" (binary_expression "string_end[-0x160c] < 0" (subscript_expression "string_end[-0x160c]" identifier [ number_literal ]) < number_literal) && (parenthesized_expression "(bVar9 == 0x5e)" ( (binary_expression "bVar9 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar9 = pbVar22[2];\n          pbVar20 = pbVar22 + 2;\n        }" { (expression_statement "bVar9 = pbVar22[2];" (assignment_expression "bVar9 = pbVar22[2]" identifier = (subscript_expression "pbVar22[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar20 = pbVar22 + 2;" (assignment_expression "pbVar20 = pbVar22 + 2" identifier = (binary_expression "pbVar22 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar9 == 0x5d) {\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }" if (parenthesized_expression "(bVar9 == 0x5d)" ( (binary_expression "bVar9 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar9 = pbVar20[1];\n          pbVar20 = pbVar20 + 1;\n        }" { (expression_statement "bVar9 = pbVar20[1];" (assignment_expression "bVar9 = pbVar20[1]" identifier = (subscript_expression "pbVar20[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar11 = (byte *)0x5d;" (assignment_expression "pbVar11 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar22 = pbVar20 + 1, bVar9 != 0x5d) {\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }" while (parenthesized_expression "(pbVar22 = pbVar20 + 1, bVar9 != 0x5d)" ( (comma_expression "pbVar22 = pbVar20 + 1, bVar9 != 0x5d" (assignment_expression "pbVar22 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) , (binary_expression "bVar9 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar9 == 0) goto LAB_0002b7b4;\n          pbVar20 = pbVar22;\n          bVar9 = *pbVar22;\n        }" { (if_statement "if (bVar9 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar20 = pbVar22;" (assignment_expression "pbVar20 = pbVar22" identifier = identifier) ;) (expression_statement "bVar9 = *pbVar22;" (assignment_expression "bVar9 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) })) (expression_statement "iVar21 = (int)(char)pbVar20[1];" (assignment_expression "iVar21 = (int)(char)pbVar20[1]" identifier = (cast_expression "(int)(char)pbVar20[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar20[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar20[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }" else (compound_statement "{\n        pbVar11 = &DAT_c0000601;\n        uVar5 = iVar21 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar5 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;\n      }" { (expression_statement "pbVar11 = &DAT_c0000601;" (assignment_expression "pbVar11 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar5 = iVar21 - 0x21U & 0xff;" (assignment_expression "uVar5 = iVar21 - 0x21U & 0xff" identifier = (binary_expression "iVar21 - 0x21U & 0xff" (binary_expression "iVar21 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar13 = (byte *)(uint)(uVar5 < 0x20);" (assignment_expression "pbVar13 = (byte *)(uint)(uVar5 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar5 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar5 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];\n        }" { (if_statement "if ((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0))" ( (binary_expression "(iVar21 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)" (parenthesized_expression "(iVar21 == 0x7c)" ( (binary_expression "iVar21 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (wchar_t *)0x0)" ( (binary_expression "unaff_s5 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar20 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar22 + -(int)unaff_s6;\n            pbVar16 = pbVar22 + 1;\n            iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = puVar24 + iVar4;\n            piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);\n            puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);\n            piVar10 = piStack_5bc;\n            piVar8 = piStack_5d0;\n            puVar25 = puStack_5d8;\n            iVar21 = (int)(char)pbVar22[1];\n            *puVar6 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar8;\n            *piVar10 = (int)piVar8;\n            pbVar11 = unaff_s6;\n            unaff_s6 = pbVar16;\n            pbVar22 = pbVar16;\n            puVar24 = puVar24 + iVar4;\n            puVar6 = puVar29;\n            if (iVar21 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar20 = pbStack_5cc;" (assignment_expression "pbVar20 = pbStack_5cc" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar20 = pbVar22 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar20 = pbVar22 + (1 - (int)unaff_s6);" (assignment_expression "pbVar20 = pbVar22 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar22 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar20 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar20 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar20 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar20 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar20 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar20 + 7)" ( (binary_expression "pbVar20 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar22 + -(int)unaff_s6;" (assignment_expression "pbVar13 = pbVar22 + -(int)unaff_s6" identifier = (binary_expression "pbVar22 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar16 = pbVar22 + 1;" (assignment_expression "pbVar16 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar4 = -(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar20 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar20 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar20 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar20 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar20 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar20 + 7)" ( (binary_expression "pbVar20 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar29 = puVar24 + iVar4;" (assignment_expression "puVar29 = puVar24 + iVar4" identifier = (binary_expression "puVar24 + iVar4" identifier + identifier)) ;) (expression_statement "piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18);" (assignment_expression "piStack_5d0 = (int *)(puVar24 + iVar4 + 0x18)" identifier = (cast_expression "(int *)(puVar24 + iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar4 + 0x18)" ( (binary_expression "puVar24 + iVar4 + 0x18" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c);" (assignment_expression "puVar6 = (undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar25 + -0x7bfc))(puVar24 + iVar4 + 0x1c)" (parenthesized_expression "(**(code **)(puVar25 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar25 + -0x7bfc)" * (pointer_expression "*(code **)(puVar25 + -0x7bfc)" * (cast_expression "(code **)(puVar25 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7bfc)" ( (binary_expression "puVar25 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar24 + iVar4 + 0x1c)" ( (binary_expression "puVar24 + iVar4 + 0x1c" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal) ))))) ;) (expression_statement "piVar10 = piStack_5bc;" (assignment_expression "piVar10 = piStack_5bc" identifier = identifier) ;) (expression_statement "piVar8 = piStack_5d0;" (assignment_expression "piVar8 = piStack_5d0" identifier = identifier) ;) (expression_statement "puVar25 = puStack_5d8;" (assignment_expression "puVar25 = puStack_5d8" identifier = identifier) ;) (expression_statement "iVar21 = (int)(char)pbVar22[1];" (assignment_expression "iVar21 = (int)(char)pbVar22[1]" identifier = (cast_expression "(int)(char)pbVar22[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar22[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "*piStack_5d0 = 0;" (assignment_expression "*piStack_5d0 = 0" (pointer_expression "*piStack_5d0" * identifier) = number_literal) ;) (expression_statement "piStack_5bc = piVar8;" (assignment_expression "piStack_5bc = piVar8" identifier = identifier) ;) (expression_statement "*piVar10 = (int)piVar8;" (assignment_expression "*piVar10 = (int)piVar8" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar11 = unaff_s6;" (assignment_expression "pbVar11 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar16;" (assignment_expression "unaff_s6 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "puVar24 = puVar24 + iVar4;" (assignment_expression "puVar24 = puVar24 + iVar4" identifier = (binary_expression "puVar24 + iVar4" identifier + identifier)) ;) (expression_statement "puVar6 = puVar29;" (assignment_expression "puVar6 = puVar29" identifier = identifier) ;) (if_statement "if (iVar21 == 0) break;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar21 = (int)(char)pbVar22[1];" statement_identifier : (expression_statement "iVar21 = (int)(char)pbVar22[1];" (assignment_expression "iVar21 = (int)(char)pbVar22[1]" identifier = (cast_expression "(int)(char)pbVar22[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar22[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }\n          if (iVar21 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }\n          iVar21 = (int)(char)pbVar22[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0) {\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar5 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar5 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar5 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar5 & 0x1f)" number_literal >> (parenthesized_expression "(uVar5 & 0x1f)" ( (binary_expression "uVar5 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar21 = (int)(char)pbVar22[1];\n            if (iVar21 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar22 = pbVar22 + 1;\n            uVar5 = 7;\n          }" { (expression_statement "iVar21 = (int)(char)pbVar22[1];" (assignment_expression "iVar21 = (int)(char)pbVar22[1]" identifier = (cast_expression "(int)(char)pbVar22[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar22[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar21 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar21 != 0x28)" ( (binary_expression "iVar21 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0002b91c;" goto statement_identifier ;)) (expression_statement "pbVar13 = (byte *)0x1;" (assignment_expression "pbVar13 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);" (assignment_expression "unaff_s5 = (wchar_t *)((int)unaff_s5 + 1)" identifier = (cast_expression "(wchar_t *)((int)unaff_s5 + 1)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + 1)" ( (binary_expression "(int)unaff_s5 + 1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = 7;" (assignment_expression "uVar5 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar21 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar21 != 0x29)" ( (binary_expression "iVar21 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }" if (parenthesized_expression "(unaff_s5 == (wchar_t *)0x0)" ( (binary_expression "unaff_s5 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }\n            break;\n          }" { (if_statement "if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < iVar3 - 0x3fU)" ( (binary_expression "1 < iVar3 - 0x3fU" number_literal < (binary_expression "iVar3 - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbStack_5cc = pbVar22 + (1 - (int)unaff_s6);" (assignment_expression "pbStack_5cc = pbVar22 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar22 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }" if (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);\n              piVar8 = piStack_5bc;\n              puVar25 = puStack_5d8;\n              *puVar6 = 0;\n              *(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;\n              *piVar8 = (int)(puVar24 + iVar21 + 0x18);\n              if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }\n                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();\n              return iVar3;\n            }" { (expression_statement "iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar21 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6);" (assignment_expression "puVar6 = (undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                       (**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar25 + -0x7bfc))\n                                 (puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6)" (parenthesized_expression "(**(code **)(puVar25 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar25 + -0x7bfc)" * (pointer_expression "*(code **)(puVar25 + -0x7bfc)" * (cast_expression "(code **)(puVar25 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7bfc)" ( (binary_expression "puVar25 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar24 + iVar21 + 0x1c,unaff_s6,(int)pbVar22 - (int)unaff_s6)" ( (binary_expression "puVar24 + iVar21 + 0x1c" (binary_expression "puVar24 + iVar21" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar22 - (int)unaff_s6" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "piVar8 = piStack_5bc;" (assignment_expression "piVar8 = piStack_5bc" identifier = identifier) ;) (expression_statement "puVar25 = puStack_5d8;" (assignment_expression "puVar25 = puStack_5d8" identifier = identifier) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar24 + iVar21 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar24 + iVar21 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar24 + iVar21 + 0x18)" * (cast_expression "(undefined4 *)(puVar24 + iVar21 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar21 + 0x18)" ( (binary_expression "puVar24 + iVar21 + 0x18" (binary_expression "puVar24 + iVar21" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*piVar8 = (int)(puVar24 + iVar21 + 0x18);" (assignment_expression "*piVar8 = (int)(puVar24 + iVar21 + 0x18)" (pointer_expression "*piVar8" * identifier) = (cast_expression "(int)(puVar24 + iVar21 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar24 + iVar21 + 0x18)" ( (binary_expression "puVar24 + iVar21 + 0x18" (binary_expression "puVar24 + iVar21" identifier + identifier) + number_literal) )))) ;) (if_statement "if (iStack_5b8 == 0) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" if (parenthesized_expression "(iStack_5b8 == 0)" ( (binary_expression "iStack_5b8 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" { (expression_statement "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);" (assignment_expression "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" identifier = (call_expression "(**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar25 + -0x7d80))" ( (pointer_expression "**(code **)(puVar25 + -0x7d80)" * (pointer_expression "*(code **)(puVar25 + -0x7d80)" * (cast_expression "(code **)(puVar25 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7d80)" ( (binary_expression "puVar25 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + -0x7fc8) + 0x7a14,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x454,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a14" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (pbVar22[-1] != 0x29) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" if (parenthesized_expression "(pbVar22[-1] != 0x29)" ( (binary_expression "pbVar22[-1] != 0x29" (subscript_expression "pbVar22[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" { (expression_statement "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);" (assignment_expression "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" identifier = (call_expression "(**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar25 + -0x7d80))" ( (pointer_expression "**(code **)(puVar25 + -0x7d80)" * (pointer_expression "*(code **)(puVar25 + -0x7d80)" * (cast_expression "(code **)(puVar25 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7d80)" ( (binary_expression "puVar25 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + -0x7fc8) + 0x7a24,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x455,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a24" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if (0x1f < iVar3 - 0x21U) {\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" if (parenthesized_expression "(0x1f < iVar3 - 0x21U)" ( (binary_expression "0x1f < iVar3 - 0x21U" number_literal < (binary_expression "iVar3 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);\n                return iVar3;\n              }" { (expression_statement "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60);" (assignment_expression "iVar3 = (**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" identifier = (call_expression "(**(code **)(puVar25 + -0x7d80))\n                                  (*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar25 + -0x7d80))" ( (pointer_expression "**(code **)(puVar25 + -0x7d80)" * (pointer_expression "*(code **)(puVar25 + -0x7d80)" * (cast_expression "(code **)(puVar25 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7d80)" ( (binary_expression "puVar25 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + -0x7fc8) + 0x7a38,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7a00,0x4ad,\n                                   *(int *)(puVar25 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a38" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return iVar3;" return identifier ;) })) comment comment (expression_statement "iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))();" (assignment_expression "iVar3 = (*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))()" identifier = (call_expression "(*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))()" (parenthesized_expression "(*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                ))" ( (pointer_expression "*(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                )" * (cast_expression "(code *)(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)\n                                )" ( (binary_expression "puVar25 +\n                                *(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)" * (cast_expression "(int *)(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4)" ( (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7bf0 + (iVar3 - 0x21U) * 4" (binary_expression "*(int *)(puVar25 + -0x7fc8) + 0x7bf0" (pointer_expression "*(int *)(puVar25 + -0x7fc8)" * (cast_expression "(int *)(puVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x7fc8)" ( (binary_expression "puVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal) + (binary_expression "(iVar3 - 0x21U) * 4" (parenthesized_expression "(iVar3 - 0x21U)" ( (binary_expression "iVar3 - 0x21U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar21 = (int)(char)pbVar22[1];" (assignment_expression "iVar21 = (int)(char)pbVar22[1]" identifier = (cast_expression "(int)(char)pbVar22[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar22[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar22[1]" identifier [ number_literal ])))) ;) (expression_statement "unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);" (assignment_expression "unaff_s5 = (wchar_t *)((int)unaff_s5 + -1)" identifier = (cast_expression "(wchar_t *)((int)unaff_s5 + -1)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + -1)" ( (binary_expression "(int)unaff_s5 + -1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (labeled_statement "joined_r0x0002b91c:\n        pbVar22 = pbVar22 + 1;" statement_identifier : (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar6 = puVar24;" (assignment_expression "puVar6 = puVar24" identifier = identifier) ;) }) while (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  pcVar26 = *(code **)(puVar25 + -0x7c10);" statement_identifier : (expression_statement "pcVar26 = *(code **)(puVar25 + -0x7c10);" (assignment_expression "pcVar26 = *(code **)(puVar25 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar25 + -0x7c10)" * (cast_expression "(code **)(puVar25 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + -0x7c10)" ( (binary_expression "puVar25 + -0x7c10" identifier + number_literal) ))))) ;)) (if_statement "if (pbStack_5b4 == (byte *)*puVar15) {\n    return -1;\n  }" if (parenthesized_expression "(pbStack_5b4 == (byte *)*puVar15)" ( (binary_expression "pbStack_5b4 == (byte *)*puVar15" identifier == (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) })) (expression_statement "pcVar32 = internal_fnmatch;" (assignment_expression "pcVar32 = internal_fnmatch" identifier = identifier) ;) (expression_statement "pbVar20 = pbStack_5b4;" (assignment_expression "pbVar20 = pbStack_5b4" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = pcVar26 + 0x25450;" (assignment_expression "pcVar27 = pcVar26 + 0x25450" identifier = (binary_expression "pcVar26 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c);" (assignment_expression "puVar7 = *(undefined4 **)(pcVar26 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(pcVar26 + 0x1d86c)" * (cast_expression "(undefined4 **)(pcVar26 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d86c)" ( (binary_expression "pcVar26 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar24 + -8) = auStack_5f0;" (assignment_expression "*(undefined1 **)(puVar24 + -8) = auStack_5f0" (pointer_expression "*(undefined1 **)(puVar24 + -8)" * (cast_expression "(undefined1 **)(puVar24 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -8)" ( (binary_expression "puVar24 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar24 + -0x1c) = string_end;" (assignment_expression "*(wchar_t **)(puVar24 + -0x1c) = string_end" (pointer_expression "*(wchar_t **)(puVar24 + -0x1c)" * (cast_expression "(wchar_t **)(puVar24 + -0x1c)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1c)" ( (binary_expression "puVar24 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar24 + -0x160) = pcVar27;" (assignment_expression "*(code **)(puVar24 + -0x160) = pcVar27" (pointer_expression "*(code **)(puVar24 + -0x160)" * (cast_expression "(code **)(puVar24 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar24 + -4) = pcVar32;" (assignment_expression "*(code **)(puVar24 + -4) = pcVar32" (pointer_expression "*(code **)(puVar24 + -4)" * (cast_expression "(code **)(puVar24 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -4)" ( (binary_expression "puVar24 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0xc) = pbVar22;" (assignment_expression "*(byte **)(puVar24 + -0xc) = pbVar22" (pointer_expression "*(byte **)(puVar24 + -0xc)" * (cast_expression "(byte **)(puVar24 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0xc)" ( (binary_expression "puVar24 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar24 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar24 + -0x10)" * (cast_expression "(byte **)(puVar24 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x10)" ( (binary_expression "puVar24 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar24 + -0x14) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar24 + -0x14) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar24 + -0x14)" * (cast_expression "(wchar_t **)(puVar24 + -0x14)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x14)" ( (binary_expression "puVar24 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x18) = pbVar18;" (assignment_expression "*(byte **)(puVar24 + -0x18) = pbVar18" (pointer_expression "*(byte **)(puVar24 + -0x18)" * (cast_expression "(byte **)(puVar24 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x18)" ( (binary_expression "puVar24 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar24 + -0x20) = puVar15;" (assignment_expression "*(undefined4 **)(puVar24 + -0x20) = puVar15" (pointer_expression "*(undefined4 **)(puVar24 + -0x20)" * (cast_expression "(undefined4 **)(puVar24 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x20)" ( (binary_expression "puVar24 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar24 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar24 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar24 + -0x24)" * (cast_expression "(uint *)(puVar24 + -0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x24)" ( (binary_expression "puVar24 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar24 + -0x28) = string;" (assignment_expression "*(wchar_t **)(puVar24 + -0x28) = string" (pointer_expression "*(wchar_t **)(puVar24 + -0x28)" * (cast_expression "(wchar_t **)(puVar24 + -0x28)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x28)" ( (binary_expression "puVar24 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar24 + -0x144) = puVar7;" (assignment_expression "*(undefined4 **)(puVar24 + -0x144) = puVar7" (pointer_expression "*(undefined4 **)(puVar24 + -0x144)" * (cast_expression "(undefined4 **)(puVar24 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x144)" ( (binary_expression "puVar24 + -0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x154) = pbVar20 + 1;" (assignment_expression "*(byte **)(puVar24 + -0x154) = pbVar20 + 1" (pointer_expression "*(byte **)(puVar24 + -0x154)" * (cast_expression "(byte **)(puVar24 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = (byte *)(uint)*pbVar20;" (assignment_expression "pbVar16 = (byte *)(uint)*pbVar20" identifier = (binary_expression "(byte *)(uint)*pbVar20" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x2c) = *puVar7;" (assignment_expression "*(undefined4 *)(puVar24 + -0x2c) = *puVar7" (pointer_expression "*(undefined4 *)(puVar24 + -0x2c)" * (cast_expression "(undefined4 *)(puVar24 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x2c)" ( (binary_expression "puVar24 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "pbVar23 = *(byte **)(pcVar26 + 0x1d488);" (assignment_expression "pbVar23 = *(byte **)(pcVar26 + 0x1d488)" identifier = (pointer_expression "*(byte **)(pcVar26 + 0x1d488)" * (cast_expression "(byte **)(pcVar26 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d488)" ( (binary_expression "pcVar26 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar22 = pbVar13;" (assignment_expression "pbVar22 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar30 = pbVar11;" (assignment_expression "pbVar30 = pbVar11" identifier = identifier) ;) (if_statement "if (pbVar16 != (byte *)0x0) {\n    uVar5 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar5 & 2;\n    string = (wchar_t *)(uVar5 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar5 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);\n    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;\n    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;\n    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;\n    pbVar18 = pbVar20;\n    unaff_s6 = pbVar17;\n    do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);\n  }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar5 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar5 & 2;\n    string = (wchar_t *)(uVar5 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar5 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);\n    *(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;\n    *(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;\n    *(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;\n    pbVar18 = pbVar20;\n    unaff_s6 = pbVar17;\n    do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);\n  }" { (expression_statement "uVar5 = *(uint *)(puVar24 + 0x10);" (assignment_expression "uVar5 = *(uint *)(puVar24 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar24 + 0x10)" * (cast_expression "(uint *)(puVar24 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = uVar5 & 2;" (assignment_expression "unaff_s1 = uVar5 & 2" identifier = (binary_expression "uVar5 & 2" identifier & number_literal)) ;) (expression_statement "string = (wchar_t *)(uVar5 & 0x10);" (assignment_expression "string = (wchar_t *)(uVar5 & 0x10)" identifier = (cast_expression "(wchar_t *)(uVar5 & 0x10)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 & 0x10)" ( (binary_expression "uVar5 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar24 + -0x140) = uVar5 & 5;" (assignment_expression "*(uint *)(puVar24 + -0x140) = uVar5 & 5" (pointer_expression "*(uint *)(puVar24 + -0x140)" * (cast_expression "(uint *)(puVar24 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x140)" ( (binary_expression "puVar24 + -0x140" identifier + number_literal) )))) = (binary_expression "uVar5 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(pcVar26 + 0x1d478)" (pointer_expression "*(undefined4 *)(puVar24 + -0x148)" * (cast_expression "(undefined4 *)(puVar24 + -0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x148)" ( (binary_expression "puVar24 + -0x148" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar26 + 0x1d478)" * (cast_expression "(undefined4 *)(pcVar26 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d478)" ( (binary_expression "pcVar26 + 0x1d478" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70;" (assignment_expression "*(byte **)(puVar24 + -0x14c) = pbVar23 + 0x7c70" (pointer_expression "*(byte **)(puVar24 + -0x14c)" * (cast_expression "(byte **)(puVar24 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x14c)" ( (binary_expression "puVar24 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar23 + 0x7c70" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar24 + -0x138) = *(int *)(pcVar26 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar24 + -0x138)" * (cast_expression "(int *)(puVar24 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x138)" ( (binary_expression "puVar24 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar26 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(pcVar26 + 0x1d488)" * (cast_expression "(int *)(pcVar26 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d488)" ( (binary_expression "pcVar26 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar24 + -0x13c) = *(int *)(pcVar26 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar24 + -0x13c)" * (cast_expression "(int *)(puVar24 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x13c)" ( (binary_expression "puVar24 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar26 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(pcVar26 + 0x1d488)" * (cast_expression "(int *)(pcVar26 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d488)" ( (binary_expression "pcVar26 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar18 = pbVar20;" (assignment_expression "pbVar18 = pbVar20" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (do_statement "do {\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    } while (pbVar16 != (byte *)0x0);" do (compound_statement "{\n      pbVar17 = pbVar16;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }\n      if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }\n      uVar5 = 1;\n      pbVar16 = pbVar17;\n      if (pbVar30 == pbVar13) goto LAB_0002c064;\n      pbVar16 = (byte *)(uint)*pbVar30;\n      if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }\n      uVar5 = 1;\n      unaff_s6 = pbVar17;\n      if (pbVar16 != pbVar17) goto LAB_0002c064;\n      pbVar18 = *(byte **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar16 = (byte *)(uint)*pbVar18;\n      pbVar30 = pbVar30 + 1;\n      *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n    }" { (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" identifier = identifier) ;) (if_statement "if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }" if (parenthesized_expression "((byte *)string != (byte *)0x0)" ( (binary_expression "(byte *)string != (byte *)0x0" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);\n      }" { (expression_statement "piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();" (assignment_expression "piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar27 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar27 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar27 + -0x7d7c)" * (cast_expression "(code **)(pcVar27 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7d7c)" ( (binary_expression "pcVar27 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar27 = *(code **)(puVar24 + -0x160);" (assignment_expression "pcVar27 = *(code **)(puVar24 + -0x160)" identifier = (pointer_expression "*(code **)(puVar24 + -0x160)" * (cast_expression "(code **)(puVar24 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3);" (assignment_expression "pbVar17 = (byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar8 + (int)pbVar16 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar8 + (int)pbVar16 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + (int)pbVar16 * 4 + 3)" ( (binary_expression "*piVar8 + (int)pbVar16 * 4 + 3" (binary_expression "*piVar8 + (int)pbVar16 * 4" (pointer_expression "*piVar8" * identifier) + (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar17 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }" if (parenthesized_expression "(((uint)(pbVar17 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar17 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar17 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar17 + -0x21) & 0xff" (call_expression "(uint)(pbVar17 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar17 + -0x21)" ( (binary_expression "pbVar17 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();\n        return iVar3;\n      }" { comment comment (expression_statement "iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))();" (assignment_expression "iVar3 = (*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))()" identifier = (call_expression "(*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4))" * (parenthesized_expression "(pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4))" ( (binary_expression "pcVar27 +\n                  *(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar24 + -0x14c) + ((uint)(pbVar17 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar24 + -0x14c)" * (cast_expression "(int *)(puVar24 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x14c)" ( (binary_expression "puVar24 + -0x14c" identifier + number_literal) )))) + (binary_expression "((uint)(pbVar17 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar17 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar17 + -0x21) & 0xff" (call_expression "(uint)(pbVar17 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar17 + -0x21)" ( (binary_expression "pbVar17 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (if_statement "if (pbVar30 == pbVar13) goto LAB_0002c064;" if (parenthesized_expression "(pbVar30 == pbVar13)" ( (binary_expression "pbVar30 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar16 = (byte *)(uint)*pbVar30;" (assignment_expression "pbVar16 = (byte *)(uint)*pbVar30" identifier = (binary_expression "(byte *)(uint)*pbVar30" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((byte *)string != (byte *)0x0) {\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }" if (parenthesized_expression "((byte *)string != (byte *)0x0)" ( (binary_expression "(byte *)string != (byte *)0x0" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();\n        pcVar27 = *(code **)(puVar24 + -0x160);\n        pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);\n      }" { (expression_statement "piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))();" (assignment_expression "piVar8 = (int *)(**(code **)(pcVar27 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar27 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar27 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar27 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar27 + -0x7d7c)" * (cast_expression "(code **)(pcVar27 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7d7c)" ( (binary_expression "pcVar27 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar27 = *(code **)(puVar24 + -0x160);" (assignment_expression "pcVar27 = *(code **)(puVar24 + -0x160)" identifier = (pointer_expression "*(code **)(puVar24 + -0x160)" * (cast_expression "(code **)(puVar24 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4);" (assignment_expression "pbVar16 = *(byte **)(*piVar8 + (int)pbVar16 * 4)" identifier = (pointer_expression "*(byte **)(*piVar8 + (int)pbVar16 * 4)" * (cast_expression "(byte **)(*piVar8 + (int)pbVar16 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + (int)pbVar16 * 4)" ( (binary_expression "*piVar8 + (int)pbVar16 * 4" (pointer_expression "*piVar8" * identifier) + (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (if_statement "if (pbVar16 != pbVar17) goto LAB_0002c064;" if (parenthesized_expression "(pbVar16 != pbVar17)" ( (binary_expression "pbVar16 != pbVar17" identifier != identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar18 = *(byte **)(puVar24 + -0x154);" (assignment_expression "pbVar18 = *(byte **)(puVar24 + -0x154)" identifier = (pointer_expression "*(byte **)(puVar24 + -0x154)" * (cast_expression "(byte **)(puVar24 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar16 = (byte *)(uint)*pbVar18;" (assignment_expression "pbVar16 = (byte *)(uint)*pbVar18" identifier = (binary_expression "(byte *)(uint)*pbVar18" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar30 = pbVar30 + 1;" (assignment_expression "pbVar30 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar24 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar24 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar24 + -0x154)" * (cast_expression "(byte **)(puVar24 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (pbVar30 != pbVar13) {\n    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);\n    if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar30 != pbVar13)" ( (binary_expression "pbVar30 != pbVar13" identifier != identifier) )) (compound_statement "{\n    pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);\n    if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }\n  }" { (expression_statement "pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8);" (assignment_expression "pbVar18 = (byte *)(*(uint *)(puVar24 + 0x10) & 8)" identifier = (cast_expression "(byte *)(*(uint *)(puVar24 + 0x10) & 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar24 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar24 + 0x10) & 8" (pointer_expression "*(uint *)(puVar24 + 0x10)" * (cast_expression "(uint *)(puVar24 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n      uVar5 = 1;\n    }\n    else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = 1;\n    }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }" else (compound_statement "{\n      uVar5 = (uint)(*pbVar30 != 0x2f);\n    }" { (expression_statement "uVar5 = (uint)(*pbVar30 != 0x2f);" (assignment_expression "uVar5 = (uint)(*pbVar30 != 0x2f)" identifier = (call_expression "(uint)(*pbVar30 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar30 != 0x2f)" ( (binary_expression "*pbVar30 != 0x2f" (pointer_expression "*pbVar30" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_0002c064:\n  iVar3 = *(int *)(puVar24 + -0x2c);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar24 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar24 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar24 + -0x2c)" * (cast_expression "(int *)(puVar24 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x2c)" ( (binary_expression "puVar24 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 == **(int **)(puVar24 + -0x144)) {\n    return uVar5;\n  }" if (parenthesized_expression "(iVar3 == **(int **)(puVar24 + -0x144))" ( (binary_expression "iVar3 == **(int **)(puVar24 + -0x144)" identifier == (pointer_expression "**(int **)(puVar24 + -0x144)" * (pointer_expression "*(int **)(puVar24 + -0x144)" * (cast_expression "(int **)(puVar24 + -0x144)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x144)" ( (binary_expression "puVar24 + -0x144" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7c10);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7c10)" * (cast_expression "(code **)(pcVar27 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7c10)" ( (binary_expression "pcVar27 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = gnu_fnmatch;" (assignment_expression "pcVar32 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar6 = puVar24 + -0x1e0;" (assignment_expression "puVar6 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar27 = *(code **)(pcVar26 + 0x1cbc4);" (assignment_expression "pcVar27 = *(code **)(pcVar26 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1cbc4)" * (cast_expression "(code **)(pcVar26 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1cbc4)" ( (binary_expression "pcVar26 + 0x1cbc4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar24 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar24 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar24 + -0x19c)" * (cast_expression "(uint *)(puVar24 + -0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x19c)" ( (binary_expression "puVar24 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar8 = *(int **)(pcVar26 + 0x1cc28);" (assignment_expression "piVar8 = *(int **)(pcVar26 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar26 + 0x1cc28)" * (cast_expression "(int **)(pcVar26 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1cc28)" ( (binary_expression "pcVar26 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar24 + -0x180) = pbVar30;" (assignment_expression "*(byte **)(puVar24 + -0x180) = pbVar30" (pointer_expression "*(byte **)(puVar24 + -0x180)" * (cast_expression "(byte **)(puVar24 + -0x180)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x180)" ( (binary_expression "puVar24 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x198) = pbVar16;" (assignment_expression "*(byte **)(puVar24 + -0x198) = pbVar16" (pointer_expression "*(byte **)(puVar24 + -0x198)" * (cast_expression "(byte **)(puVar24 + -0x198)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x198)" ( (binary_expression "puVar24 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c;" (assignment_expression "*(code **)(puVar24 + -0x1c8) = pcVar26 + 0x2480c" (pointer_expression "*(code **)(puVar24 + -0x1c8)" * (cast_expression "(code **)(puVar24 + -0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) = (binary_expression "pcVar26 + 0x2480c" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar24 + -0x17c) = pcVar32;" (assignment_expression "*(code **)(puVar24 + -0x17c) = pcVar32" (pointer_expression "*(code **)(puVar24 + -0x17c)" * (cast_expression "(code **)(puVar24 + -0x17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x17c)" ( (binary_expression "puVar24 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x184) = pbVar23;" (assignment_expression "*(byte **)(puVar24 + -0x184) = pbVar23" (pointer_expression "*(byte **)(puVar24 + -0x184)" * (cast_expression "(byte **)(puVar24 + -0x184)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x184)" ( (binary_expression "puVar24 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar24 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar24 + -0x188)" * (cast_expression "(byte **)(puVar24 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x188)" ( (binary_expression "puVar24 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar24 + -0x18c) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar24 + -0x18c) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar24 + -0x18c)" * (cast_expression "(wchar_t **)(puVar24 + -0x18c)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x18c)" ( (binary_expression "puVar24 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -400) = pbVar18;" (assignment_expression "*(byte **)(puVar24 + -400) = pbVar18" (pointer_expression "*(byte **)(puVar24 + -400)" * (cast_expression "(byte **)(puVar24 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -400)" ( (binary_expression "puVar24 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x194) = pbVar13;" (assignment_expression "*(byte **)(puVar24 + -0x194) = pbVar13" (pointer_expression "*(byte **)(puVar24 + -0x194)" * (cast_expression "(byte **)(puVar24 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x194)" ( (binary_expression "puVar24 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar24 + -0x1a0) = string;" (assignment_expression "*(wchar_t **)(puVar24 + -0x1a0) = string" (pointer_expression "*(wchar_t **)(puVar24 + -0x1a0)" * (cast_expression "(wchar_t **)(puVar24 + -0x1a0)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1a0)" ( (binary_expression "puVar24 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x1b4) = iVar3;" (assignment_expression "*(int *)(puVar24 + -0x1b4) = iVar3" (pointer_expression "*(int *)(puVar24 + -0x1b4)" * (cast_expression "(int *)(puVar24 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1b4)" ( (binary_expression "puVar24 + -0x1b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x1b8) = pbVar11;" (assignment_expression "*(byte **)(puVar24 + -0x1b8) = pbVar11" (pointer_expression "*(byte **)(puVar24 + -0x1b8)" * (cast_expression "(byte **)(puVar24 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b8)" ( (binary_expression "puVar24 + -0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x1a4) = *piVar8;" (assignment_expression "*(int *)(puVar24 + -0x1a4) = *piVar8" (pointer_expression "*(int *)(puVar24 + -0x1a4)" * (cast_expression "(int *)(puVar24 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a4)" ( (binary_expression "puVar24 + -0x1a4" identifier + number_literal) )))) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iVar3 = (*pcVar27)();" (assignment_expression "iVar3 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);\n    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);\n    *(byte **)(puVar24 + -0x1d0) = pbVar22;\n    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));\n    iVar3 = *(int *)(puVar24 + -0x1c8);\n    puVar6 = puVar24 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);\n    iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);\n    *(byte **)(puVar24 + -0x1d0) = pbVar22;\n    pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));\n    iVar3 = *(int *)(puVar24 + -0x1c8);\n    puVar6 = puVar24 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar17 = *(byte **)(puVar24 + -0x1b8);" statement_identifier : (expression_statement "pbVar17 = *(byte **)(puVar24 + -0x1b8);" (assignment_expression "pbVar17 = *(byte **)(puVar24 + -0x1b8)" identifier = (pointer_expression "*(byte **)(puVar24 + -0x1b8)" * (cast_expression "(byte **)(puVar24 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b8)" ( (binary_expression "puVar24 + -0x1b8" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17);" (assignment_expression "iVar3 = (**(code **)(iVar21 + -0x7ca4))(pbVar17)" identifier = (call_expression "(**(code **)(iVar21 + -0x7ca4))(pbVar17)" (parenthesized_expression "(**(code **)(iVar21 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar21 + -0x7ca4)" * (pointer_expression "*(code **)(iVar21 + -0x7ca4)" * (cast_expression "(code **)(iVar21 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ca4)" ( (binary_expression "iVar21 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar17)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar24 + -0x1d0) = pbVar22;" (assignment_expression "*(byte **)(puVar24 + -0x1d0) = pbVar22" (pointer_expression "*(byte **)(puVar24 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0));" (assignment_expression "pbVar11 = (byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0))" identifier (argument_list "(*(char **)(puVar24 + -0x1b4),(char *)pbVar17,\n                                       (char *)(pbVar17 + iVar3),\n                                       SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar24 + -0x1d0))" ( (pointer_expression "*(char **)(puVar24 + -0x1b4)" * (cast_expression "(char **)(puVar24 + -0x1b4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b4)" ( (binary_expression "puVar24 + -0x1b4" identifier + number_literal) )))) , (cast_expression "(char *)pbVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(pbVar17 + iVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + iVar3)" ( (binary_expression "pbVar17 + iVar3" identifier + identifier) ))) , (call_expression "SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar24 + -0x1d0)" * (cast_expression "(int *)(puVar24 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = puVar24 + -0x1e0;" (assignment_expression "puVar6 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar14 = puVar24 + -0x1ac;\n    pcVar26 = *(code **)(iVar21 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar3 + 1);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    uVar33 = 0x129;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar24 + -0x1b8;\n    pbVar17 = unaff_s6;\n    pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar23 = pbVar18 + 1;\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);\n    iVar21 = *(int *)(puVar24 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar11 = pbVar13 + (int)pbVar23;\n    if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }\n  }" { (expression_statement "puVar14 = puVar24 + -0x1ac;" (assignment_expression "puVar14 = puVar24 + -0x1ac" identifier = (binary_expression "puVar24 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar26 = *(code **)(iVar21 + -0x7ba4);" (assignment_expression "pcVar26 = *(code **)(iVar21 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (wchar_t *)(puVar24 + -0x1b4);" (assignment_expression "unaff_s5 = (wchar_t *)(puVar24 + -0x1b4)" identifier = (cast_expression "(wchar_t *)(puVar24 + -0x1b4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1b4)" ( (binary_expression "puVar24 + -0x1b4" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar24 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar24 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar24 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1ac)" ( (binary_expression "puVar24 + -0x1ac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar24 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar24 + -0x1a8)" * (cast_expression "(undefined4 *)(puVar24 + -0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a8)" ( (binary_expression "puVar24 + -0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14);" (assignment_expression "iVar3 = (*pcVar26)(0,unaff_s5,0,puVar14)" identifier = (call_expression "(*pcVar26)(0,unaff_s5,0,puVar14)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(0,unaff_s5,0,puVar14)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar13 = (byte *)(iVar3 + 1);" (assignment_expression "pbVar13 = (byte *)(iVar3 + 1)" identifier = (cast_expression "(byte *)(iVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar13 == (byte *)0x0)" ( (binary_expression "pbVar13 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);" (assignment_expression "iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar21 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar21 + -0x7be8))" ( (pointer_expression "**(code **)(iVar21 + -0x7be8)" * (pointer_expression "*(code **)(iVar21 + -0x7be8)" * (cast_expression "(code **)(iVar21 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7be8)" ( (binary_expression "iVar21 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "uVar33 = 0x129;" (assignment_expression "uVar33 = 0x129" identifier = number_literal) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;)) (expression_statement "unaff_s6 = puVar24 + -0x1b8;" (assignment_expression "unaff_s6 = puVar24 + -0x1b8" identifier = (binary_expression "puVar24 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar17 = unaff_s6;" (assignment_expression "pbVar17 = unaff_s6" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14);" (assignment_expression "pbVar18 = (byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14)" identifier = (cast_expression "(byte *)(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7ba4))(0,unaff_s6,0,puVar14)" (parenthesized_expression "(**(code **)(iVar21 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar21 + -0x7ba4)" * (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar14)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar23 = pbVar18 + 1;" (assignment_expression "pbVar23 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar23 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar23 == (byte *)0x0)" ( (binary_expression "pbVar23 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14);" (assignment_expression "iVar3 = (**(code **)(iVar21 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar21 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar21 + -0x7be8))" ( (pointer_expression "**(code **)(iVar21 + -0x7be8)" * (pointer_expression "*(code **)(iVar21 + -0x7be8)" * (cast_expression "(code **)(iVar21 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7be8)" ( (binary_expression "iVar21 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar33 = 0x12d;\n      goto LAB_0002ccf0;\n    }" { (expression_statement "uVar33 = 0x12d;" (assignment_expression "uVar33 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar13 + (int)pbVar23;" (assignment_expression "pbVar11 = pbVar13 + (int)pbVar23" identifier = (binary_expression "pbVar13 + (int)pbVar23" identifier + (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)) {\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }\n    else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11))" ( (binary_expression "(pbVar11 < pbVar13) || ((byte *)0x3fffffff < pbVar11)" (parenthesized_expression "(pbVar11 < pbVar13)" ( (binary_expression "pbVar11 < pbVar13" identifier < identifier) )) || (parenthesized_expression "((byte *)0x3fffffff < pbVar11)" ( (binary_expression "(byte *)0x3fffffff < pbVar11" (cast_expression "(byte *)0x3fffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\nLAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;\n      puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      *puVar15 = 0xc;\n    }" { (labeled_statement "LAB_0002cc10:\n      pbVar11 = (byte *)0xffffffff;" statement_identifier : (expression_statement "pbVar11 = (byte *)0xffffffff;" (assignment_expression "pbVar11 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar15 = 0xc;" (assignment_expression "*puVar15 = 0xc" (pointer_expression "*puVar15" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }" else (if_statement "if (pbVar11 < (byte *)0x7d0) {\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }" if (parenthesized_expression "(pbVar11 < (byte *)0x7d0)" ( (binary_expression "pbVar11 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);\n      pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);\n      pbVar20 = (byte *)(pwVar19 + (int)pbVar13);\n      (**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      unaff_s5 = pwVar19;\n      puVar6 = puVar24 + iVar4 + -0x1e0;\n    }" { (expression_statement "iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar4 = -((int)pbVar11 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar11 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar11 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar11 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar11 * 4 + 7U" (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8);" (assignment_expression "pwVar19 = (wchar_t *)(puVar24 + iVar4 + -0x1c8)" identifier = (cast_expression "(wchar_t *)(puVar24 + iVar4 + -0x1c8)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar4 + -0x1c8)" ( (binary_expression "puVar24 + iVar4 + -0x1c8" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar20 = (byte *)(pwVar19 + (int)pbVar13);" (assignment_expression "pbVar20 = (byte *)(pwVar19 + (int)pbVar13)" identifier = (cast_expression "(byte *)(pwVar19 + (int)pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pwVar19 + (int)pbVar13)" ( (binary_expression "pwVar19 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14);" (call_expression "(**(code **)(iVar21 + -0x7ba4))(pwVar19,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(**(code **)(iVar21 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar21 + -0x7ba4)" * (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pwVar19,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar33 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar33 = 0x147;" (assignment_expression "uVar33 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar21 + -0x7d80))\n                    (*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d80))" ( (pointer_expression "**(code **)(iVar21 + -0x7d80)" * (pointer_expression "*(code **)(iVar21 + -0x7d80)" * (cast_expression "(code **)(iVar21 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d80)" ( (binary_expression "iVar21 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar21 + -0x7fc8) + 0x7a70,*(int *)(iVar21 + -0x7fc8) + 0x7a60,uVar33,\n                     *(int *)(iVar21 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" * (cast_expression "(int *)(iVar21 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fc8)" ( (binary_expression "iVar21 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" * (cast_expression "(int *)(iVar21 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fc8)" ( (binary_expression "iVar21 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar21 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar21 + -0x7fc8)" * (cast_expression "(int *)(iVar21 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + -0x7fc8)" ( (binary_expression "iVar21 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14);" (call_expression "(**(code **)(iVar21 + -0x7ba4))(pbVar20,unaff_s6,pbVar23,puVar14)" (parenthesized_expression "(**(code **)(iVar21 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar21 + -0x7ba4)" * (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar20,unaff_s6,pbVar23,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22;" (assignment_expression "*(byte **)(puVar24 + iVar4 + -0x1d0) = pbVar22" (pointer_expression "*(byte **)(puVar24 + iVar4 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + iVar4 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + iVar4 + -0x1d0)" ( (binary_expression "puVar24 + iVar4 + -0x1d0" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = pbVar20;" (assignment_expression "pbVar17 = pbVar20" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0));" (assignment_expression "pbVar11 = (byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnwmatch(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0))" identifier (argument_list "(pwVar19,(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + iVar4 + -0x1d0))" ( identifier , (cast_expression "(wchar_t *)pbVar20" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar20 + (int)pbVar18 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar20 + (int)pbVar18 * 4)" ( (binary_expression "pbVar20 + (int)pbVar18 * 4" identifier + (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , (call_expression "SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar24 + iVar4 + -0x1d0)" * (cast_expression "(int *)(puVar24 + iVar4 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar4 + -0x1d0)" ( (binary_expression "puVar24 + iVar4 + -0x1d0" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal) )))) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = pbVar20;" (assignment_expression "pbVar13 = pbVar20" identifier = identifier) ;) (expression_statement "unaff_s5 = pwVar19;" (assignment_expression "unaff_s5 = pwVar19" identifier = identifier) ;) (expression_statement "puVar6 = puVar24 + iVar4 + -0x1e0;" (assignment_expression "puVar6 = puVar24 + iVar4 + -0x1e0" identifier = (binary_expression "puVar24 + iVar4 + -0x1e0" (binary_expression "puVar24 + iVar4" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(iVar21 + -0x7c80))();\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(int *)(puVar24 + -0x1bc) = iVar3;\n      pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);\n      (*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);\n      iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);\n      iVar21 = *(int *)(puVar24 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar26 = *(code **)(iVar21 + -0x7ba4);\n      *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n      (*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);\n      *(byte **)(puVar24 + -0x1d0) = pbVar22;\n      pbVar17 = pbVar20;\n      pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));\n      (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));\n      iVar3 = *(int *)(puVar24 + -0x1c8);\n      pbVar13 = pbVar20;\n      puVar6 = puVar24 + -0x1e0;\n    }" { (expression_statement "iVar3 = (**(code **)(iVar21 + -0x7c80))();" (assignment_expression "iVar3 = (**(code **)(iVar21 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar21 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7c80))" ( (pointer_expression "**(code **)(iVar21 + -0x7c80)" * (pointer_expression "*(code **)(iVar21 + -0x7c80)" * (cast_expression "(code **)(iVar21 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7c80)" ( (binary_expression "iVar21 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(iVar21 + -0x7ba4);" (assignment_expression "pcVar26 = *(code **)(iVar21 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar24 + -0x1bc) = iVar3;" (assignment_expression "*(int *)(puVar24 + -0x1bc) = iVar3" (pointer_expression "*(int *)(puVar24 + -0x1bc)" * (cast_expression "(int *)(puVar24 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4);" (assignment_expression "pbVar20 = (byte *)(iVar3 + (int)pbVar13 * 4)" identifier = (cast_expression "(byte *)(iVar3 + (int)pbVar13 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + (int)pbVar13 * 4)" ( (binary_expression "iVar3 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14);" (call_expression "(*pcVar26)(iVar3,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(iVar3,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(iVar21 + -0x7ba4);" (assignment_expression "pcVar26 = *(code **)(iVar21 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7ba4)" * (cast_expression "(code **)(iVar21 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7ba4)" ( (binary_expression "iVar21 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14);" (call_expression "(*pcVar26)(pbVar20,unaff_s6,pbVar23,puVar14)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pbVar20,unaff_s6,pbVar23,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar24 + -0x1d0) = pbVar22;" (assignment_expression "*(byte **)(puVar24 + -0x1d0) = pbVar22" (pointer_expression "*(byte **)(puVar24 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = pbVar20;" (assignment_expression "pbVar17 = pbVar20" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0));" (assignment_expression "pbVar11 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0))" identifier (argument_list "(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar20,\n                                          (wchar_t *)(pbVar20 + (int)pbVar18 * 4),\n                                          SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar24 + -0x1d0))" ( (pointer_expression "*(wchar_t **)(puVar24 + -0x1bc)" * (cast_expression "(wchar_t **)(puVar24 + -0x1bc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) , (cast_expression "(wchar_t *)pbVar20" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar20 + (int)pbVar18 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar20 + (int)pbVar18 * 4)" ( (binary_expression "pbVar20 + (int)pbVar18 * 4" identifier + (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , (call_expression "SUB41((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar22 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar24 + -0x1d0)" * (cast_expression "(int *)(puVar24 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) ))))) ;) (expression_statement "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar24 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7bd8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7bd8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar24 + -0x1bc))" ( (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = pbVar20;" (assignment_expression "pbVar13 = pbVar20" identifier = identifier) ;) (expression_statement "puVar6 = puVar24 + -0x1e0;" (assignment_expression "puVar6 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar21 = *(int *)(puVar24 + -0x1a4);" (assignment_expression "iVar21 = *(int *)(puVar24 + -0x1a4)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1a4)" * (cast_expression "(int *)(puVar24 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a4)" ( (binary_expression "puVar24 + -0x1a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7c10);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c10)" * (cast_expression "(code **)(iVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c10)" ( (binary_expression "iVar3 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 == *piVar8) {\n    return (int)pbVar11;\n  }" if (parenthesized_expression "(iVar21 == *piVar8)" ( (binary_expression "iVar21 == *piVar8" identifier == (pointer_expression "*piVar8" * identifier)) )) (compound_statement "{\n    return (int)pbVar11;\n  }" { (return_statement "return (int)pbVar11;" return (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "pcVar32 = rpl_getcwd;" (assignment_expression "pcVar32 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = pcVar26 + 0x244c0;" (assignment_expression "pcVar27 = pcVar26 + 0x244c0" identifier = (binary_expression "pcVar26 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc);" (assignment_expression "puVar15 = *(undefined4 **)(pcVar26 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar26 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar26 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1c8dc)" ( (binary_expression "pcVar26 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar6 + -0xf4) = puVar15;" (assignment_expression "*(undefined4 **)(puVar6 + -0xf4) = puVar15" (pointer_expression "*(undefined4 **)(puVar6 + -0xf4)" * (cast_expression "(undefined4 **)(puVar6 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xf4)" ( (binary_expression "puVar6 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar6 + -0x110) = pcVar27;" (assignment_expression "*(code **)(puVar6 + -0x110) = pcVar27" (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar6 + -4) = pcVar32;" (assignment_expression "*(code **)(puVar6 + -4) = pcVar32" (pointer_expression "*(code **)(puVar6 + -4)" * (cast_expression "(code **)(puVar6 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -4)" ( (binary_expression "puVar6 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar6 + -8) = puVar24 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar6 + -8)" * (cast_expression "(undefined1 **)(puVar6 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -8)" ( (binary_expression "puVar6 + -8" identifier + number_literal) )))) = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar6 + -0xc) = pbVar23;" (assignment_expression "*(byte **)(puVar6 + -0xc) = pbVar23" (pointer_expression "*(byte **)(puVar6 + -0xc)" * (cast_expression "(byte **)(puVar6 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xc)" ( (binary_expression "puVar6 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar6 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar6 + -0x10)" * (cast_expression "(byte **)(puVar6 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x10)" ( (binary_expression "puVar6 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar6 + -0x14) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar6 + -0x14) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar6 + -0x14)" * (cast_expression "(wchar_t **)(puVar6 + -0x14)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x14)" ( (binary_expression "puVar6 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x18) = pbVar18;" (assignment_expression "*(byte **)(puVar6 + -0x18) = pbVar18" (pointer_expression "*(byte **)(puVar6 + -0x18)" * (cast_expression "(byte **)(puVar6 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18)" ( (binary_expression "puVar6 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x1c) = pbVar13;" (assignment_expression "*(byte **)(puVar6 + -0x1c) = pbVar13" (pointer_expression "*(byte **)(puVar6 + -0x1c)" * (cast_expression "(byte **)(puVar6 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x1c)" ( (binary_expression "puVar6 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x20) = pbVar22;" (assignment_expression "*(byte **)(puVar6 + -0x20) = pbVar22" (pointer_expression "*(byte **)(puVar6 + -0x20)" * (cast_expression "(byte **)(puVar6 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x20)" ( (binary_expression "puVar6 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar6 + -0x24) = piVar8;" (assignment_expression "*(int **)(puVar6 + -0x24) = piVar8" (pointer_expression "*(int **)(puVar6 + -0x24)" * (cast_expression "(int **)(puVar6 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x24)" ( (binary_expression "puVar6 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x28) = pbVar11;" (assignment_expression "*(byte **)(puVar6 + -0x28) = pbVar11" (pointer_expression "*(byte **)(puVar6 + -0x28)" * (cast_expression "(byte **)(puVar6 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x28)" ( (binary_expression "puVar6 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + 4) = pbVar17;" (assignment_expression "*(byte **)(puVar6 + 4) = pbVar17" (pointer_expression "*(byte **)(puVar6 + 4)" * (cast_expression "(byte **)(puVar6 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar6 + -0x100) = iVar21;" (assignment_expression "*(int *)(puVar6 + -0x100) = iVar21" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x2c) = *puVar15;" (assignment_expression "*(undefined4 *)(puVar6 + -0x2c) = *puVar15" (pointer_expression "*(undefined4 *)(puVar6 + -0x2c)" * (cast_expression "(undefined4 *)(puVar6 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x2c)" ( (binary_expression "puVar6 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if (pbVar17 == (byte *)0x0) {\n    if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n    *puVar15 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }" if (parenthesized_expression "(pbVar17 == (byte *)0x0)" ( (binary_expression "pbVar17 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n    *puVar15 = 0x16;\n  }" { (if_statement "if (iVar21 == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar6 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n      *(int *)(puVar6 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar6 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar6 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar6 + -0xf8)" * (cast_expression "(undefined4 *)(puVar6 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8));" (assignment_expression "iVar3 = (**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar26 + 0x1c840))(*(undefined4 *)(puVar6 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar26 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar26 + 0x1c840)" * (pointer_expression "*(code **)(pcVar26 + 0x1c840)" * (cast_expression "(code **)(pcVar26 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1c840)" ( (binary_expression "pcVar26 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar6 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0xf8)" * (cast_expression "(undefined4 *)(puVar6 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar6 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar6 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar10 = *(int **)(puVar6 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar10 = *(int **)(puVar6 + -0xf4);" (assignment_expression "piVar10 = *(int **)(puVar6 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar6 + -0xf4)" * (cast_expression "(int **)(puVar6 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xf4)" ( (binary_expression "puVar6 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))();" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar26 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar26 + 0x1c7f8)" * (cast_expression "(code **)(pcVar26 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1c7f8)" ( (binary_expression "pcVar26 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar6 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar15 = 0x16;" (assignment_expression "*puVar15 = 0x16" (pointer_expression "*puVar15" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n    *(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);\n    puVar24 = puVar6 + -0xd0;\n    iVar4 = *(int *)(puVar6 + -0xf8);\n    pcVar26 = *(code **)(pcVar27 + -0x7d60);\n    pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar4 + -1) = 0;\n    iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n    iVar28 = *(int *)(puVar6 + -0x110);\n    if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();\n    pbVar11 = *(byte **)pbVar22;\n    pcVar27 = *(code **)(puVar6 + -0x110);\n    if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;\n    *(undefined4 *)(puVar6 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar6 + -0x100) == 0) {\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar6 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar6 + -0x100) == 0" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);" (assignment_expression "*(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4)" (pointer_expression "*(undefined4 *)(puVar6 + -0xf8)" * (cast_expression "(undefined4 *)(puVar6 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + 4)" * (cast_expression "(undefined4 *)(puVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4);" (assignment_expression "*(undefined4 *)(puVar6 + -0xf8) = *(undefined4 *)(puVar6 + 4)" (pointer_expression "*(undefined4 *)(puVar6 + -0xf8)" * (cast_expression "(undefined4 *)(puVar6 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + 4)" * (cast_expression "(undefined4 *)(puVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100);" (assignment_expression "*(undefined4 *)(puVar6 + -0x108) = *(undefined4 *)(puVar6 + -0x100)" (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0x100)" * (cast_expression "(undefined4 *)(puVar6 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar3 = *(int *)(puVar6 + -0x108);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar6 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x108)" identifier = (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar24 = puVar6 + -0xd0;" (assignment_expression "puVar24 = puVar6 + -0xd0" identifier = (binary_expression "puVar6 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar4 = *(int *)(puVar6 + -0xf8);" (assignment_expression "iVar4 = *(int *)(puVar6 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar6 + -0xf8)" * (cast_expression "(int *)(puVar6 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7d60);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7d60)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7d60)" * (cast_expression "(code **)(pcVar27 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7d60)" ( (binary_expression "pcVar27 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104)" identifier = (cast_expression "(byte *)(*(int *)(pcVar27 + -0x7fc8) + 0x6104)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + -0x7fc8) + 0x6104)" ( (binary_expression "*(int *)(pcVar27 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar27 + -0x7fc8)" * (cast_expression "(int *)(pcVar27 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + -0x7fc8)" ( (binary_expression "pcVar27 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + iVar4 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar3 + iVar4 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar3 + iVar4 + -1)" * (cast_expression "(undefined1 *)(iVar3 + iVar4 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar4 + -1)" ( (binary_expression "iVar3 + iVar4 + -1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar21 = (*pcVar26)(3,pbVar17,puVar24);" (assignment_expression "iVar21 = (*pcVar26)(3,pbVar17,puVar24)" identifier = (call_expression "(*pcVar26)(3,pbVar17,puVar24)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(3,pbVar17,puVar24)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar28 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar21) {\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar21)" ( (binary_expression "-1 < iVar21" number_literal < identifier) )) (compound_statement "{\n      iVar21 = *(int *)(iVar28 + -0x7fc8);\n      pcVar26 = *(code **)(iVar28 + -0x7d60);\n      iVar31 = *(int *)(puVar6 + -0xc0);\n      *(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);\n      pbVar17 = (byte *)(iVar21 + 0x6154);\n      *(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);\n      iVar21 = (*pcVar26)(3,pbVar17,puVar24);\n      iVar28 = *(int *)(puVar6 + -0x110);\n      if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar21 = *(int *)(iVar28 + -0x7fc8);" (assignment_expression "iVar21 = *(int *)(iVar28 + -0x7fc8)" identifier = (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = *(code **)(iVar28 + -0x7d60);" (assignment_expression "pcVar26 = *(code **)(iVar28 + -0x7d60)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7d60)" * (cast_expression "(code **)(iVar28 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7d60)" ( (binary_expression "iVar28 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar6 + -0xc0);" (assignment_expression "iVar31 = *(int *)(puVar6 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar6 + -0xc0)" * (cast_expression "(int *)(puVar6 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc0)" ( (binary_expression "puVar6 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar6 + -0x104)" * (cast_expression "(undefined4 *)(puVar6 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xd0)" * (cast_expression "(undefined4 *)(puVar6 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd0)" ( (binary_expression "puVar6 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = (byte *)(iVar21 + 0x6154);" (assignment_expression "pbVar17 = (byte *)(iVar21 + 0x6154)" identifier = (cast_expression "(byte *)(iVar21 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x6154)" ( (binary_expression "iVar21 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar6 + -0xfc)" * (cast_expression "(undefined4 *)(puVar6 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xfc)" ( (binary_expression "puVar6 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xbc)" * (cast_expression "(undefined4 *)(puVar6 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xbc)" ( (binary_expression "puVar6 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = (*pcVar26)(3,pbVar17,puVar24);" (assignment_expression "iVar21 = (*pcVar26)(3,pbVar17,puVar24)" identifier = (call_expression "(*pcVar26)(3,pbVar17,puVar24)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(3,pbVar17,puVar24)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar28 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar21) {\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar21)" ( (binary_expression "-1 < iVar21" number_literal < identifier) )) (compound_statement "{\n        piVar8 = (int *)0x0;\n        *(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;\n        pbVar18 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);\n        *(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);\n        *(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);\n        *(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }\n        pbVar13 = *(byte **)(puVar6 + -0xe8);\n        pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);\n        if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar13 = pbVar18;\n        iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);\n        iVar21 = *(int *)(puVar6 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar18);\n        pcVar27 = *(code **)(puVar6 + -0x110);\n        pbVar17 = pbVar13;\n        if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;\n        pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar8 = (int *)0x0;" (assignment_expression "piVar8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1;" (assignment_expression "*(int *)(puVar6 + -0xe0) = iVar3 + iVar4 + -1" (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + iVar4 + -1" (binary_expression "iVar3 + iVar4" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar18 = (byte *)0xffffff9c;" (assignment_expression "pbVar18 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar6 + -0xec) = *(undefined4 *)(puVar6 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar6 + -0xec)" * (cast_expression "(undefined4 *)(puVar6 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xec)" ( (binary_expression "puVar6 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xd0)" * (cast_expression "(undefined4 *)(puVar6 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd0)" ( (binary_expression "puVar6 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar6 + -0xe4) = *(undefined4 *)(puVar6 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar6 + -0xe4)" * (cast_expression "(undefined4 *)(puVar6 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe4)" ( (binary_expression "puVar6 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xc0)" * (cast_expression "(undefined4 *)(puVar6 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc0)" ( (binary_expression "puVar6 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar6 + -0xdc) = *(undefined4 *)(puVar6 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar6 + -0xdc)" * (cast_expression "(undefined4 *)(puVar6 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xdc)" ( (binary_expression "puVar6 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xbc)" * (cast_expression "(undefined4 *)(puVar6 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xbc)" ( (binary_expression "puVar6 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar6 + -0xe8) = *(int *)(iVar28 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar6 + -0xe8)" * (cast_expression "(int *)(puVar6 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe8)" ( (binary_expression "puVar6 + -0xe8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0002ce58:\n        if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))) {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4)))" ( (binary_expression "(*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)) &&\n           (iVar31 == *(int *)(puVar6 + -0xe4))" (parenthesized_expression "(*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec))" ( (binary_expression "*(int *)(puVar6 + -0x104) == *(int *)(puVar6 + -0xec)" (pointer_expression "*(int *)(puVar6 + -0x104)" * (cast_expression "(int *)(puVar6 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar6 + -0xec)" * (cast_expression "(int *)(puVar6 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xec)" ( (binary_expression "puVar6 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar31 == *(int *)(puVar6 + -0xe4))" ( (binary_expression "iVar31 == *(int *)(puVar6 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar6 + -0xe4)" * (cast_expression "(int *)(puVar6 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe4)" ( (binary_expression "puVar6 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n          if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar26 = *(code **)(iVar28 + -0x7cac);" (assignment_expression "pcVar26 = *(code **)(iVar28 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7cac)" * (cast_expression "(code **)(iVar28 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cac)" ( (binary_expression "iVar28 + -0x7cac" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)) {\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc))" ( (binary_expression "*(int *)(puVar6 + -0xfc) == *(int *)(puVar6 + -0xdc)" (pointer_expression "*(int *)(puVar6 + -0xfc)" * (cast_expression "(int *)(puVar6 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xfc)" ( (binary_expression "puVar6 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar6 + -0xdc)" * (cast_expression "(int *)(puVar6 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xdc)" ( (binary_expression "puVar6 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar6 + -0xe0);\n            if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar17 = *(byte **)(puVar6 + -0xe0);\n            pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );\n            (**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n            if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }\n            iVar3 = *(int *)(puVar6 + -0x100);\n            if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }\n            *(int *)(puVar6 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar8 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);\n              iVar28 = *(int *)(puVar6 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8);" (assignment_expression "iVar3 = (**(code **)(iVar28 + -0x7d6c))(piVar8)" identifier = (call_expression "(**(code **)(iVar28 + -0x7d6c))(piVar8)" (parenthesized_expression "(**(code **)(iVar28 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar28 + -0x7d6c)" * (pointer_expression "*(code **)(iVar28 + -0x7d6c)" * (cast_expression "(code **)(iVar28 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7d6c)" ( (binary_expression "iVar28 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar28 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = *(int *)(puVar6 + -0xe0);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1) {\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar6 + -0xe0) ==\n                *(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1" (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8) + -1" (binary_expression "*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)" (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar6 + -0xf8)" * (cast_expression "(int *)(puVar6 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1);" (assignment_expression "*(undefined1 **)(puVar6 + -0xe0) = (undefined1 *)(iVar3 + -1)" (pointer_expression "*(undefined1 **)(puVar6 + -0xe0)" * (cast_expression "(undefined1 **)(puVar6 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar17 = *(byte **)(puVar6 + -0xe0);" (assignment_expression "pbVar17 = *(byte **)(puVar6 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar6 + -0xe0)" * (cast_expression "(byte **)(puVar6 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              );" (assignment_expression "pbVar11 = (byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              )" identifier = (cast_expression "(byte *)((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17\n                              )" ( (binary_expression "(*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)) - (int)pbVar17" (parenthesized_expression "(*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8))" ( (binary_expression "*(int *)(puVar6 + -0x108) + *(int *)(puVar6 + -0xf8)" (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar6 + -0xf8)" * (cast_expression "(int *)(puVar6 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11);" (call_expression "(**(code **)(iVar28 + -0x7bd0))(*(int *)(puVar6 + -0x108),pbVar17,pbVar11)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar28 + -0x7bd0)" * (pointer_expression "*(code **)(iVar28 + -0x7bd0)" * (cast_expression "(code **)(iVar28 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bd0)" ( (binary_expression "iVar28 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar6 + -0x108),pbVar17,pbVar11)" ( (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + 4) == 0) {\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }" if (parenthesized_expression "(*(int *)(puVar6 + 4) == 0)" ( (binary_expression "*(int *)(puVar6 + 4) == 0" (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar17 = pbVar11;\n              uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));\n              pcVar27 = *(code **)(puVar6 + -0x110);\n              *(undefined4 *)(puVar6 + -0x100) = uVar33;\n            }" { (expression_statement "pbVar17 = pbVar11;" (assignment_expression "pbVar17 = pbVar11" identifier = identifier) ;) (expression_statement "uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108));" (assignment_expression "uVar33 = (**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108))" identifier = (call_expression "(**(code **)(pcVar27 + -0x7c78))(*(undefined4 *)(puVar6 + -0x108))" (parenthesized_expression "(**(code **)(pcVar27 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar27 + -0x7c78)" * (pointer_expression "*(code **)(pcVar27 + -0x7c78)" * (cast_expression "(code **)(pcVar27 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7c78)" ( (binary_expression "pcVar27 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar6 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x100) = uVar33;" (assignment_expression "*(undefined4 *)(puVar6 + -0x100) = uVar33" (pointer_expression "*(undefined4 *)(puVar6 + -0x100)" * (cast_expression "(undefined4 *)(puVar6 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = *(int *)(puVar6 + -0x100);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x100)" identifier = (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar6 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar6 + -0x100) == 0" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(puVar6 + -0x108);\n            }" { (expression_statement "iVar3 = *(int *)(puVar6 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x108)" identifier = (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar6 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar6 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar26 = *(code **)(iVar28 + -0x7cac);\n        }" { (expression_statement "pcVar26 = *(code **)(iVar28 + -0x7cac);" (assignment_expression "pcVar26 = *(code **)(iVar28 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7cac)" * (cast_expression "(code **)(iVar28 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cac)" ( (binary_expression "iVar28 + -0x7cac" identifier + number_literal) ))))) ;) })))) (expression_statement "pbVar13 = *(byte **)(puVar6 + -0xe8);" (assignment_expression "pbVar13 = *(byte **)(puVar6 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar6 + -0xe8)" * (cast_expression "(byte **)(puVar6 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xe8)" ( (binary_expression "puVar6 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0);" (assignment_expression "pbVar18 = (byte *)(*pcVar26)(pbVar18,pbVar13,0)" identifier = (cast_expression "(byte *)(*pcVar26)(pbVar18,pbVar13,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar26)(pbVar18,pbVar13,0)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pbVar18,pbVar13,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar18 < 0) {\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar18 < 0)" ( (binary_expression "(int)pbVar18 < 0" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n          pcVar27 = *(code **)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }\n          pcVar26 = *(code **)(pcVar27 + -0x7bd8);\n          pbVar17 = pbVar13;\n          if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar6 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar8 != (int *)0x0) {\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar26 = *(code **)(pcVar27 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar26)(piVar8);\n            pcVar27 = *(code **)(puVar6 + -0x110);\n          }" { (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7d6c);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7d6c)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7d6c)" * (cast_expression "(code **)(pcVar27 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7d6c)" ( (binary_expression "pcVar27 + -0x7d6c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d138:\n            (*pcVar26)(piVar8);" statement_identifier : (expression_statement "(*pcVar26)(piVar8);" (call_expression "(*pcVar26)(piVar8)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(piVar8)" ( identifier ))) ;)) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7bd8);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7bd8)" * (cast_expression "(code **)(pcVar27 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7bd8)" ( (binary_expression "pcVar27 + -0x7bd8" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" identifier = identifier) ;) (if_statement "if (*(int *)(puVar6 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar6 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar6 + -0x100) == 0" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar13 = pbVar18;" (assignment_expression "pbVar13 = pbVar18" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24)" identifier = (call_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))(3,pbVar18,puVar24)" (parenthesized_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar6 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar6 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar6 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar18,puVar24)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }\n        else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);\n          iVar21 = *(int *)(puVar6 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\nLAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;\n        }" { (if_statement "if (piVar8 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);\n            *(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);\n            *(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);\n            *(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);\n            piVar8 = (int *)(*pcVar26)(pbVar18);\n            pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar6 + -0x110);\n            if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar26 = *(code **)(iVar21 + -0x7d1c);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar21 + -0x7d1c);" (assignment_expression "pcVar26 = *(code **)(iVar21 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar21 + -0x7d1c)" * (cast_expression "(code **)(iVar21 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d1c)" ( (binary_expression "iVar21 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar6 + -0xf0) = *(undefined4 *)(puVar6 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar6 + -0xf0)" * (cast_expression "(undefined4 *)(puVar6 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf0)" ( (binary_expression "puVar6 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xd0)" * (cast_expression "(undefined4 *)(puVar6 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd0)" ( (binary_expression "puVar6 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar6 + -0xd8) = *(undefined4 *)(puVar6 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar6 + -0xd8)" * (cast_expression "(undefined4 *)(puVar6 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd8)" ( (binary_expression "puVar6 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xc0)" * (cast_expression "(undefined4 *)(puVar6 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc0)" ( (binary_expression "puVar6 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar6 + -0xd4) = *(undefined4 *)(puVar6 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar6 + -0xd4)" * (cast_expression "(undefined4 *)(puVar6 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd4)" ( (binary_expression "puVar6 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xbc)" * (cast_expression "(undefined4 *)(puVar6 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xbc)" ( (binary_expression "puVar6 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = (int *)(*pcVar26)(pbVar18);" (assignment_expression "piVar8 = (int *)(*pcVar26)(pbVar18)" identifier = (cast_expression "(int *)(*pcVar26)(pbVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar26)(pbVar18)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(pbVar18)" ( identifier ))))) ;) (expression_statement "pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar22 = (byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar6 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar22[0] = 0;\n              pbVar22[1] = 0;\n              pbVar22[2] = 0;\n              pbVar22[3] = 0;\n              piVar10 = (int *)(*pcVar26)(piVar8);\n              iVar3 = *(int *)(puVar6 + -0x110);\n              if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0002cf10:\n              pcVar26 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar22[0] = 0;" statement_identifier : (expression_statement "pbVar22[0] = 0;" (assignment_expression "pbVar22[0] = 0" (subscript_expression "pbVar22[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar22[1] = 0;" (assignment_expression "pbVar22[1] = 0" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[2] = 0;" (assignment_expression "pbVar22[2] = 0" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[3] = 0;" (assignment_expression "pbVar22[3] = 0" (subscript_expression "pbVar22[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar10 = (int *)(*pcVar26)(piVar8);" (assignment_expression "piVar10 = (int *)(*pcVar26)(piVar8)" identifier = (cast_expression "(int *)(*pcVar26)(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar26)(piVar8)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(piVar8)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 == (int *)0x0) {\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar11 = *(byte **)pbVar22;\n                pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }" if (parenthesized_expression "(pbVar11 == (byte *)0x0)" ( (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar8);\n                  piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);\n                  iVar3 = *(int *)(puVar6 + -0x110);\n                  if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar11 = *(byte **)pbVar22;\n                  pcVar26 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar11 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar11 = (byte *)0x2;\n                    pbVar22[0] = 0;\n                    pbVar22[1] = 0;\n                    pbVar22[2] = 0;\n                    pbVar22[3] = 2;\n                    goto LAB_0002d134;\n                  }" { (labeled_statement "LAB_0002d128:\n                    pbVar11 = (byte *)0x2;" statement_identifier : (expression_statement "pbVar11 = (byte *)0x2;" (assignment_expression "pbVar11 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar22[0] = 0;" (assignment_expression "pbVar22[0] = 0" (subscript_expression "pbVar22[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[1] = 0;" (assignment_expression "pbVar22[1] = 0" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[2] = 0;" (assignment_expression "pbVar22[2] = 0" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[3] = 2;" (assignment_expression "pbVar22[3] = 2" (subscript_expression "pbVar22[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar3 + -0x7d90))(piVar8);" (call_expression "(**(code **)(iVar3 + -0x7d90))(piVar8)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d90))" ( (pointer_expression "**(code **)(iVar3 + -0x7d90)" * (pointer_expression "*(code **)(iVar3 + -0x7d90)" * (cast_expression "(code **)(iVar3 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d90)" ( (binary_expression "iVar3 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))) ;) (expression_statement "piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8);" (assignment_expression "piVar10 = (int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))(piVar8)" (parenthesized_expression "(**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar6 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar6 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar6 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar1 = false;\n                    if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar10 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar10 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar10 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar10 + 0x13)" * (cast_expression "(char *)((int)piVar10 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002d0e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002cf58;" goto statement_identifier ;) })) (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 == (byte *)0x0) goto LAB_0002d128;" if (parenthesized_expression "(pbVar11 == (byte *)0x0)" ( (binary_expression "pbVar11 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d128;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar10 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar10 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar10 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar10 + 0x13)" * (cast_expression "(char *)((int)piVar10 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002cf34;" goto statement_identifier ;)) (labeled_statement "LAB_0002d0e0:\n              if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar10 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar10 + 5) != '\0')" ( (binary_expression "*(char *)(piVar10 + 5) != '\0'" (pointer_expression "*(char *)(piVar10 + 5)" * (cast_expression "(char *)(piVar10 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 5)" ( (binary_expression "piVar10 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0002d0ec;" goto statement_identifier ;))) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d208;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8);" (assignment_expression "iVar3 = (**(code **)(iVar21 + -0x7d6c))(piVar8)" identifier = (call_expression "(**(code **)(iVar21 + -0x7d6c))(piVar8)" (parenthesized_expression "(**(code **)(iVar21 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar21 + -0x7d6c)" * (pointer_expression "*(code **)(iVar21 + -0x7d6c)" * (cast_expression "(code **)(iVar21 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7d6c)" ( (binary_expression "iVar21 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier )))) ;) (expression_statement "iVar21 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar21 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar11 = *(byte **)pbVar22;" statement_identifier : (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();\n          iVar3 = *(int *)(puVar6 + -0x110);\n          pbVar11 = *(byte **)pbVar22;\n          if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }\n        }" { (expression_statement "pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))();" (assignment_expression "pbVar22 = (byte *)(**(code **)(iVar21 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar21 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar21 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar21 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar21 + -0x7cc8)" * (pointer_expression "*(code **)(iVar21 + -0x7cc8)" * (cast_expression "(code **)(iVar21 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7cc8)" ( (binary_expression "iVar21 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar8 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar3 + -0x7d6c))(piVar8);\n            iVar3 = *(int *)(puVar6 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar3 + -0x7d6c))(piVar8);" (call_expression "(**(code **)(iVar3 + -0x7d6c))(piVar8)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar3 + -0x7d6c)" * (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar3 + -0x7d68))(pbVar18);" (call_expression "(**(code **)(iVar3 + -0x7d68))(pbVar18)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d68))" ( (pointer_expression "**(code **)(iVar3 + -0x7d68)" * (pointer_expression "*(code **)(iVar3 + -0x7d68)" * (cast_expression "(code **)(iVar3 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d68)" ( (binary_expression "iVar3 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar18)" ( identifier ))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" identifier = identifier) ;) (if_statement "if (*(int *)(puVar6 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar6 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar6 + -0x100) != 0" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7bd8);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7bd8)" * (cast_expression "(code **)(pcVar27 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7bd8)" ( (binary_expression "pcVar27 + -0x7bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002d19c:\n    pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))();" (assignment_expression "pbVar22 = (byte *)(**(code **)(iVar28 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar28 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar28 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar28 + -0x7cc8)" * (pointer_expression "*(code **)(iVar28 + -0x7cc8)" * (cast_expression "(code **)(iVar28 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cc8)" ( (binary_expression "iVar28 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar11 = *(byte **)pbVar22;" (assignment_expression "pbVar11 = *(byte **)pbVar22" identifier = (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0x100) == 0) {\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar6 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar6 + -0x100) == 0" (pointer_expression "*(int *)(puVar6 + -0x100)" * (cast_expression "(int *)(puVar6 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x100)" ( (binary_expression "puVar6 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar26 = *(code **)(pcVar27 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n      pcVar27 = *(code **)(puVar6 + -0x110);\n    }" { (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7bd8);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7bd8)" * (cast_expression "(code **)(pcVar27 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7bd8)" ( (binary_expression "pcVar27 + -0x7bd8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d1e4:\n      (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));" statement_identifier : (expression_statement "(*pcVar26)(*(undefined4 *)(puVar6 + -0x108));" (call_expression "(*pcVar26)(*(undefined4 *)(puVar6 + -0x108))" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(*(undefined4 *)(puVar6 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar27 = *(code **)(puVar6 + -0x110);" (assignment_expression "pcVar27 = *(code **)(puVar6 + -0x110)" identifier = (pointer_expression "*(code **)(puVar6 + -0x110)" * (cast_expression "(code **)(puVar6 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar22 = pbVar11;" statement_identifier : (expression_statement "*(byte **)pbVar22 = pbVar11;" (assignment_expression "*(byte **)pbVar22 = pbVar11" (pointer_expression "*(byte **)pbVar22" * (cast_expression "(byte **)pbVar22" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar6 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar6 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar10 = *(int **)(puVar6 + -0xf4);" statement_identifier : (expression_statement "piVar10 = *(int **)(puVar6 + -0xf4);" (assignment_expression "piVar10 = *(int **)(puVar6 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar6 + -0xf4)" * (cast_expression "(int **)(puVar6 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xf4)" ( (binary_expression "puVar6 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  iVar3 = *(int *)(puVar6 + -0x2c);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar6 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar6 + -0x2c)" * (cast_expression "(int *)(puVar6 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x2c)" ( (binary_expression "puVar6 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 != *piVar10) {\n    pcVar26 = *(code **)(pcVar27 + -0x7c10);\n    uVar33 = 0x2d36c;\n    (*pcVar26)();\n    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;\n    *(undefined4 *)(puVar6 + -300) = uVar33;\n    *(byte **)(puVar6 + -0x130) = pbVar22;\n    *(int **)(puVar6 + -0x134) = piVar8;\n    *(byte **)(puVar6 + -0x138) = pbVar11;\n    if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }\n    return iVar3;\n  }" if (parenthesized_expression "(iVar3 != *piVar10)" ( (binary_expression "iVar3 != *piVar10" identifier != (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    pcVar26 = *(code **)(pcVar27 + -0x7c10);\n    uVar33 = 0x2d36c;\n    (*pcVar26)();\n    *(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;\n    *(undefined4 *)(puVar6 + -300) = uVar33;\n    *(byte **)(puVar6 + -0x130) = pbVar22;\n    *(int **)(puVar6 + -0x134) = piVar8;\n    *(byte **)(puVar6 + -0x138) = pbVar11;\n    if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }\n    return iVar3;\n  }" { (expression_statement "pcVar26 = *(code **)(pcVar27 + -0x7c10);" (assignment_expression "pcVar26 = *(code **)(pcVar27 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar27 + -0x7c10)" * (cast_expression "(code **)(pcVar27 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + -0x7c10)" ( (binary_expression "pcVar27 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = 0x2d36c;" (assignment_expression "uVar33 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70;" (assignment_expression "*(code **)(puVar6 + -0x140) = pcVar26 + 0x23e70" (pointer_expression "*(code **)(puVar6 + -0x140)" * (cast_expression "(code **)(puVar6 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x140)" ( (binary_expression "puVar6 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar26 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar6 + -300) = uVar33;" (assignment_expression "*(undefined4 *)(puVar6 + -300) = uVar33" (pointer_expression "*(undefined4 *)(puVar6 + -300)" * (cast_expression "(undefined4 *)(puVar6 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -300)" ( (binary_expression "puVar6 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x130) = pbVar22;" (assignment_expression "*(byte **)(puVar6 + -0x130) = pbVar22" (pointer_expression "*(byte **)(puVar6 + -0x130)" * (cast_expression "(byte **)(puVar6 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x130)" ( (binary_expression "puVar6 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar6 + -0x134) = piVar8;" (assignment_expression "*(int **)(puVar6 + -0x134) = piVar8" (pointer_expression "*(int **)(puVar6 + -0x134)" * (cast_expression "(int **)(puVar6 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x134)" ( (binary_expression "puVar6 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar6 + -0x138) = pbVar11;" (assignment_expression "*(byte **)(puVar6 + -0x138) = pbVar11" (pointer_expression "*(byte **)(puVar6 + -0x138)" * (cast_expression "(byte **)(puVar6 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x138)" ( (binary_expression "puVar6 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }\n    else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = -1;\n      puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();\n      *puVar15 = 0x7a;\n    }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (expression_statement "puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))();" (assignment_expression "puVar15 = (undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar26 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar26 + 0x1c1a8)" * (cast_expression "(code **)(pcVar26 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1c1a8)" ( (binary_expression "pcVar26 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar15 = 0x7a;" (assignment_expression "*puVar15 = 0x7a" (pointer_expression "*puVar15" * identifier) = number_literal) ;) }) (else_clause "else if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }" else (if_statement "if (iVar3 == 10) {\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n      uVar33 = *(undefined4 *)pbVar17;\n      iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);\n      if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }\n    }" { (expression_statement "uVar33 = *(undefined4 *)pbVar17;" (assignment_expression "uVar33 = *(undefined4 *)pbVar17" identifier = (pointer_expression "*(undefined4 *)pbVar17" * (cast_expression "(undefined4 *)pbVar17" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar21 = (**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1c2c8))(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar26 + 0x1c2c8)" * (cast_expression "(code **)(pcVar26 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1c2c8)" ( (binary_expression "pcVar26 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar33,*(int *)(pcVar26 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar26 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar26 + 0x1bea8)" * (cast_expression "(int *)(pcVar26 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1bea8)" ( (binary_expression "pcVar26 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar21 == 0) {\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = -1;\n        (**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);\n        pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);\n        pbVar17[0] = 0;\n        pbVar17[1] = 0;\n        pbVar17[2] = 0;\n        pbVar17[3] = 0;\n        puVar15 = (undefined4 *)(*pcVar26)();\n        *puVar15 = 0x3d;\n      }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33);" (call_expression "(**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))(uVar33)" (parenthesized_expression "(**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar6 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar6 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar6 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar6 + -0x140)" * (cast_expression "(int *)(puVar6 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x140)" ( (binary_expression "puVar6 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar33)" ( identifier ))) ;) (expression_statement "pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8);" (assignment_expression "pcVar26 = *(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar6 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar6 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar6 + -0x140)" * (cast_expression "(int *)(puVar6 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x140)" ( (binary_expression "puVar6 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar17[0] = 0;" (assignment_expression "pbVar17[0] = 0" (subscript_expression "pbVar17[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar17[1] = 0;" (assignment_expression "pbVar17[1] = 0" (subscript_expression "pbVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar17[2] = 0;" (assignment_expression "pbVar17[2] = 0" (subscript_expression "pbVar17[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar17[3] = 0;" (assignment_expression "pbVar17[3] = 0" (subscript_expression "pbVar17[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15 = (undefined4 *)(*pcVar26)();" (assignment_expression "puVar15 = (undefined4 *)(*pcVar26)()" identifier = (cast_expression "(undefined4 *)(*pcVar26)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar15 = 0x3d;" (assignment_expression "*puVar15 = 0x3d" (pointer_expression "*puVar15" * identifier) = number_literal) ;) })) })))) (return_statement "return iVar3;" return identifier ;) })) (return_statement "return *(int *)(puVar6 + -0x108);" return (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar26 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar10[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar10[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar10[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar10[5] & 0xffff0000U)" ( (binary_expression "piVar10[5] & 0xffff0000U" (subscript_expression "piVar10[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar26 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }\n    pcVar26 = *(code **)(iVar3 + -0x7d38);\n    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }\n    pcVar26 = *(code **)(iVar3 + -0x7d38);\n    if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);\n  }" { (if_statement "if (*piVar10 == iVar31) {\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }" if (parenthesized_expression "(*piVar10 == iVar31)" ( (binary_expression "*piVar10 == iVar31" (pointer_expression "*piVar10" * identifier) == identifier) )) (compound_statement "{\n      iVar21 = *(int *)(puVar6 + -0x104);\n      if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar21 = *(int *)(puVar6 + -0x104);" (assignment_expression "iVar21 = *(int *)(puVar6 + -0x104)" identifier = (pointer_expression "*(int *)(puVar6 + -0x104)" * (cast_expression "(int *)(puVar6 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar10[1] == *(int *)(puVar6 + -0xfc)) {\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar10[1] == *(int *)(puVar6 + -0xfc))" ( (binary_expression "piVar10[1] == *(int *)(puVar6 + -0xfc)" (subscript_expression "piVar10[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar6 + -0xfc)" * (cast_expression "(int *)(puVar6 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xfc)" ( (binary_expression "puVar6 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar26 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }" else (compound_statement "{\n      iVar21 = *(int *)(puVar6 + -0x104);\n    }" { (expression_statement "iVar21 = *(int *)(puVar6 + -0x104);" (assignment_expression "iVar21 = *(int *)(puVar6 + -0x104)" identifier = (pointer_expression "*(int *)(puVar6 + -0x104)" * (cast_expression "(int *)(puVar6 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 == *(int *)(puVar6 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar21 == *(int *)(puVar6 + -0xf0))" ( (binary_expression "iVar21 == *(int *)(puVar6 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar6 + -0xf0)" * (cast_expression "(int *)(puVar6 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf0)" ( (binary_expression "puVar6 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar26 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar17 = (byte *)((int)piVar10 + 0x13);" statement_identifier : (expression_statement "pbVar17 = (byte *)((int)piVar10 + 0x13);" (assignment_expression "pbVar17 = (byte *)((int)piVar10 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar10 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x13)" ( (binary_expression "(int)piVar10 + 0x13" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar6 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar6 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar6 + -0x118)" * (cast_expression "(undefined4 *)(puVar6 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x118)" ( (binary_expression "puVar6 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar13 = pbVar18;" (assignment_expression "pbVar13 = pbVar18" identifier = identifier) ;) (expression_statement "iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24);" (assignment_expression "iVar21 = (*pcVar26)(3,pbVar18,pbVar17,puVar24)" identifier = (call_expression "(*pcVar26)(3,pbVar18,pbVar17,puVar24)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(3,pbVar18,pbVar17,puVar24)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)) ||\n     (*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31))" ( (binary_expression "(((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))) ||\n      (*(int *)(puVar6 + -0xc0) != iVar31)" (parenthesized_expression "(((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104)))" ( (binary_expression "((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))" (parenthesized_expression "((*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar6 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar6 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar6 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar6 + -0xb8)" * (cast_expression "(uint *)(puVar6 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xb8)" ( (binary_expression "puVar6 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104))" ( (binary_expression "*(int *)(puVar6 + -0xd0) != *(int *)(puVar6 + -0x104)" (pointer_expression "*(int *)(puVar6 + -0xd0)" * (cast_expression "(int *)(puVar6 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd0)" ( (binary_expression "puVar6 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar6 + -0x104)" * (cast_expression "(int *)(puVar6 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar6 + -0xc0) != iVar31)" ( (binary_expression "*(int *)(puVar6 + -0xc0) != iVar31" (pointer_expression "*(int *)(puVar6 + -0xc0)" * (cast_expression "(int *)(puVar6 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xc0)" ( (binary_expression "puVar6 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc))" ( (binary_expression "*(int *)(puVar6 + -0xbc) != *(int *)(puVar6 + -0xfc)" (pointer_expression "*(int *)(puVar6 + -0xbc)" * (cast_expression "(int *)(puVar6 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xbc)" ( (binary_expression "puVar6 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar6 + -0xfc)" * (cast_expression "(int *)(puVar6 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xfc)" ( (binary_expression "puVar6 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108));" (assignment_expression "pbVar20 = (byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108))" ( (binary_expression "*(int *)(puVar6 + -0xe0) - *(int *)(puVar6 + -0x108)" (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17);" (assignment_expression "pbVar11 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17)" identifier = (cast_expression "(byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + -0x7ca4))(pbVar17)" (parenthesized_expression "(**(code **)(iVar3 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar3 + -0x7ca4)" * (pointer_expression "*(code **)(iVar3 + -0x7ca4)" * (cast_expression "(code **)(iVar3 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7ca4)" ( (binary_expression "iVar3 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar17)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar20 <= pbVar11) {\n    pbVar16 = *(byte **)(puVar6 + -0xf8);\n    if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar30 = pbVar16;\n    if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }\n    pbVar23 = pbVar30 + (int)pbVar16;\n    pcVar26 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar6 + -0x104) = pbVar30;\n    pbVar13 = pbVar23;\n    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n    iVar3 = *(int *)(puVar6 + -0x110);\n    if (iVar21 == 0) goto LAB_0002d338;\n    uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);\n    iVar3 = *(int *)(puVar6 + -0x110);\n    *(byte **)(puVar6 + -0xf8) = pbVar23;\n    *(undefined4 *)(puVar6 + -0xe0) = uVar33;\n    *(int *)(puVar6 + -0x108) = iVar21;\n  }" if (parenthesized_expression "(pbVar20 <= pbVar11)" ( (binary_expression "pbVar20 <= pbVar11" identifier <= identifier) )) (compound_statement "{\n    pbVar16 = *(byte **)(puVar6 + -0xf8);\n    if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar30 = pbVar16;\n    if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }\n    pbVar23 = pbVar30 + (int)pbVar16;\n    pcVar26 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar6 + -0x104) = pbVar30;\n    pbVar13 = pbVar23;\n    iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));\n    iVar3 = *(int *)(puVar6 + -0x110);\n    if (iVar21 == 0) goto LAB_0002d338;\n    uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);\n    iVar3 = *(int *)(puVar6 + -0x110);\n    *(byte **)(puVar6 + -0xf8) = pbVar23;\n    *(undefined4 *)(puVar6 + -0xe0) = uVar33;\n    *(int *)(puVar6 + -0x108) = iVar21;\n  }" { (expression_statement "pbVar16 = *(byte **)(puVar6 + -0xf8);" (assignment_expression "pbVar16 = *(byte **)(puVar6 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar6 + -0xf8)" * (cast_expression "(byte **)(puVar6 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + 4) != 0) {\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar6 + 4) != 0)" ( (binary_expression "*(int *)(puVar6 + 4) != 0" (pointer_expression "*(int *)(puVar6 + 4)" * (cast_expression "(int *)(puVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar11 = (byte *)0x22;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0x22;\n      goto LAB_0002d134;\n    }" { (expression_statement "pbVar11 = (byte *)0x22;" (assignment_expression "pbVar11 = (byte *)0x22" identifier = (cast_expression "(byte *)0x22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22[0] = 0;" (assignment_expression "pbVar22[0] = 0" (subscript_expression "pbVar22[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[1] = 0;" (assignment_expression "pbVar22[1] = 0" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[2] = 0;" (assignment_expression "pbVar22[2] = 0" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[3] = 0x22;" (assignment_expression "pbVar22[3] = 0x22" (subscript_expression "pbVar22[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar30 = pbVar16;" (assignment_expression "pbVar30 = pbVar16" identifier = identifier) ;) (if_statement "if (pbVar16 < pbVar11) {\n      pbVar30 = pbVar11;\n    }" if (parenthesized_expression "(pbVar16 < pbVar11)" ( (binary_expression "pbVar16 < pbVar11" identifier < identifier) )) (compound_statement "{\n      pbVar30 = pbVar11;\n    }" { (expression_statement "pbVar30 = pbVar11;" (assignment_expression "pbVar30 = pbVar11" identifier = identifier) ;) })) (expression_statement "pbVar23 = pbVar30 + (int)pbVar16;" (assignment_expression "pbVar23 = pbVar30 + (int)pbVar16" identifier = (binary_expression "pbVar30 + (int)pbVar16" identifier + (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7c78);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c78)" * (cast_expression "(code **)(iVar3 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c78)" ( (binary_expression "iVar3 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar23 < pbVar16) {\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar23 < pbVar16)" ( (binary_expression "pbVar23 < pbVar16" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar11 = (byte *)0xc;\n      pbVar22[0] = 0;\n      pbVar22[1] = 0;\n      pbVar22[2] = 0;\n      pbVar22[3] = 0xc;\nLAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" { (labeled_statement "LAB_0002d338:\n      pbVar11 = (byte *)0xc;" statement_identifier : (expression_statement "pbVar11 = (byte *)0xc;" (assignment_expression "pbVar11 = (byte *)0xc" identifier = (cast_expression "(byte *)0xc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar22[0] = 0;" (assignment_expression "pbVar22[0] = 0" (subscript_expression "pbVar22[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[1] = 0;" (assignment_expression "pbVar22[1] = 0" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[2] = 0;" (assignment_expression "pbVar22[2] = 0" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar22[3] = 0xc;" (assignment_expression "pbVar22[3] = 0xc" (subscript_expression "pbVar22[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar26 = *(code **)(iVar3 + -0x7d6c);" statement_identifier : (expression_statement "pcVar26 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar26 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar6 + -0x104) = pbVar30;" (assignment_expression "*(byte **)(puVar6 + -0x104) = pbVar30" (pointer_expression "*(byte **)(puVar6 + -0x104)" * (cast_expression "(byte **)(puVar6 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar13 = pbVar23;" (assignment_expression "pbVar13 = pbVar23" identifier = identifier) ;) (expression_statement "iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108));" (assignment_expression "iVar21 = (*pcVar26)(*(undefined4 *)(puVar6 + -0x108))" identifier = (call_expression "(*pcVar26)(*(undefined4 *)(puVar6 + -0x108))" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(*(undefined4 *)(puVar6 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar6 + -0x108)" * (cast_expression "(undefined4 *)(puVar6 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar21 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20);" (assignment_expression "uVar33 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))\n                       (pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar20 + iVar21 + *(int *)(puVar6 + -0x104),pbVar20 + iVar21,\n                        *(int *)(puVar6 + -0xf8) - (int)pbVar20)" ( (binary_expression "pbVar20 + iVar21 + *(int *)(puVar6 + -0x104)" (binary_expression "pbVar20 + iVar21" identifier + identifier) + (pointer_expression "*(int *)(puVar6 + -0x104)" * (cast_expression "(int *)(puVar6 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar20 + iVar21" identifier + identifier) , (binary_expression "*(int *)(puVar6 + -0xf8) - (int)pbVar20" (pointer_expression "*(int *)(puVar6 + -0xf8)" * (cast_expression "(int *)(puVar6 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar3 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar6 + -0xf8) = pbVar23;" (assignment_expression "*(byte **)(puVar6 + -0xf8) = pbVar23" (pointer_expression "*(byte **)(puVar6 + -0xf8)" * (cast_expression "(byte **)(puVar6 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0xf8)" ( (binary_expression "puVar6 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xe0) = uVar33;" (assignment_expression "*(undefined4 *)(puVar6 + -0xe0) = uVar33" (pointer_expression "*(undefined4 *)(puVar6 + -0xe0)" * (cast_expression "(undefined4 *)(puVar6 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar6 + -0x108) = iVar21;" (assignment_expression "*(int *)(puVar6 + -0x108) = iVar21" (pointer_expression "*(int *)(puVar6 + -0x108)" * (cast_expression "(int *)(puVar6 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x108)" ( (binary_expression "puVar6 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar6 + -0xe0) - (int)pbVar11,pbVar17,pbVar11)" ( (binary_expression "*(int *)(puVar6 + -0xe0) - (int)pbVar11" (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar28 = *(int *)(puVar6 + -0x110);" (assignment_expression "iVar28 = *(int *)(puVar6 + -0x110)" identifier = (pointer_expression "*(int *)(puVar6 + -0x110)" * (cast_expression "(int *)(puVar6 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x110)" ( (binary_expression "puVar6 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(puVar6 + -0xd8);" (assignment_expression "iVar31 = *(int *)(puVar6 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar6 + -0xd8)" * (cast_expression "(int *)(puVar6 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd8)" ( (binary_expression "puVar6 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar6 + -0xe0) = iVar3 + -1;" (assignment_expression "*(int *)(puVar6 + -0xe0) = iVar3 + -1" (pointer_expression "*(int *)(puVar6 + -0xe0)" * (cast_expression "(int *)(puVar6 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xe0)" ( (binary_expression "puVar6 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar6 + -0xfc) = *(undefined4 *)(puVar6 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar6 + -0xfc)" * (cast_expression "(undefined4 *)(puVar6 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xfc)" ( (binary_expression "puVar6 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xd4)" * (cast_expression "(undefined4 *)(puVar6 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xd4)" ( (binary_expression "puVar6 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar6 + -0x104) = *(undefined4 *)(puVar6 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar6 + -0x104)" * (cast_expression "(undefined4 *)(puVar6 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x104)" ( (binary_expression "puVar6 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar6 + -0xf0)" * (cast_expression "(undefined4 *)(puVar6 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0xf0)" ( (binary_expression "puVar6 + -0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002ce58;" goto statement_identifier ;) })))
(translation_unit "byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" type_identifier (pointer_declarator "* FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" * (function_declarator "FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" identifier (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "uint param_5" type_identifier identifier) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint unaff_s0;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined1 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_5f0 [24];" type_identifier (array_declarator "auStack_5f0 [24]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_5d8;" type_identifier (pointer_declarator "*puStack_5d8" * identifier) ;) (declaration "int *piStack_5d0;" primitive_type (pointer_declarator "*piStack_5d0" * identifier) ;) (declaration "byte *pbStack_5cc;" type_identifier (pointer_declarator "*pbStack_5cc" * identifier) ;) (declaration "int iStack_5c8;" primitive_type identifier ;) (declaration "byte *pbStack_5c4;" type_identifier (pointer_declarator "*pbStack_5c4" * identifier) ;) (declaration "uint uStack_5c0;" type_identifier identifier ;) (declaration "int *piStack_5bc;" primitive_type (pointer_declarator "*piStack_5bc" * identifier) ;) (declaration "int iStack_5b8;" primitive_type identifier ;) (declaration "byte *pbStack_5b4;" type_identifier (pointer_declarator "*pbStack_5b4" * identifier) ;) (declaration "uint uStack_5b0;" type_identifier identifier ;) (declaration "uint uStack_5ac;" type_identifier identifier ;) (declaration "byte bStack_575;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar22 = PTR_LAB_00049218;" (assignment_expression "puVar22 = PTR_LAB_00049218" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" * (cast_expression "(int *)PTR___stack_chk_guard_000495fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" identifier = identifier) ;) (expression_statement "pbVar27 = param_2;" (assignment_expression "pbVar27 = param_2" identifier = identifier) ;) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" { (expression_statement "unaff_s5 = param_1 + 1;" (assignment_expression "unaff_s5 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = param_5 & 2;" (assignment_expression "unaff_s1 = param_5 & 2" identifier = (binary_expression "param_5 & 2" identifier & number_literal)) ;) (expression_statement "unaff_s0 = param_5 & 0x10;" (assignment_expression "unaff_s0 = param_5 & 0x10" identifier = (binary_expression "param_5 & 0x10" identifier & number_literal)) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    }" { (if_statement "if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" { (expression_statement "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);" (assignment_expression "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar19)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar19)" ( identifier )))) ;) })) (if_statement "if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" if (parenthesized_expression "(iVar19 - 0x21U < 0x3c)" ( (binary_expression "iVar19 - 0x21U < 0x3c" (binary_expression "iVar19 - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" { (expression_statement "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" identifier = (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" ( (binary_expression "&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" * (cast_expression "(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" ( (binary_expression "puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00" (binary_expression "puVar22 + (iVar19 - 0x21U) * 4" identifier + (binary_expression "(iVar19 - 0x21U) * 4" (parenthesized_expression "(iVar19 - 0x21U)" ( (binary_expression "iVar19 - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (param_3 == pbVar27) goto LAB_0002ad44;" if (parenthesized_expression "(param_3 == pbVar27)" ( (binary_expression "param_3 == pbVar27" identifier == identifier) )) (goto_statement "goto LAB_0002ad44;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)pbVar27;" (assignment_expression "iVar5 = *(int *)pbVar27" identifier = (pointer_expression "*(int *)pbVar27" * (cast_expression "(int *)pbVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" if (parenthesized_expression "(unaff_s0 != 0)" ( (binary_expression "unaff_s0 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" { (expression_statement "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);" (assignment_expression "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5)" identifier = (call_expression "(*(code *)PTR_towlower_000495f0)(iVar5)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" ( (pointer_expression "*(code *)PTR_towlower_000495f0" * (cast_expression "(code *)PTR_towlower_000495f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier )))) ;) })) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 != iVar19) goto LAB_0002ad48;" if (parenthesized_expression "(iVar5 != iVar19)" ( (binary_expression "iVar5 != iVar19" identifier != identifier) )) (goto_statement "goto LAB_0002ad48;" goto statement_identifier ;)) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = *unaff_s5;" (assignment_expression "iVar19 = *unaff_s5" identifier = (pointer_expression "*unaff_s5" * identifier)) ;) (expression_statement "pbVar27 = pbVar27 + 4;" (assignment_expression "pbVar27 = pbVar27 + 4" identifier = (binary_expression "pbVar27 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar6 = (byte *)0x0;" (assignment_expression "pbVar6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar27 != param_3)" ( (binary_expression "pbVar27 != param_3" identifier != identifier) )) (compound_statement "{\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" { (if_statement "if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" if (parenthesized_expression "((param_5 & 8) == 0)" ( (binary_expression "(param_5 & 8) == 0" (parenthesized_expression "(param_5 & 8)" ( (binary_expression "param_5 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }" { (labeled_statement "LAB_0002ad44:\n      pbVar6 = (byte *)0x1;" statement_identifier : (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" else (compound_statement "{\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" { (expression_statement "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);" (assignment_expression "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*(int *)pbVar27 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*(int *)pbVar27 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)pbVar27 != 0x2f)" ( (binary_expression "*(int *)pbVar27 != 0x2f" (pointer_expression "*(int *)pbVar27" * (cast_expression "(int *)pbVar27" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar6;\n  }" { (return_statement "return pbVar6;" return identifier ;) }))) (expression_statement "puVar22 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000495d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" * (cast_expression "(code *)PTR___stack_chk_fail_000495d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_5d8 = puVar22 + 0x25b40;" (assignment_expression "puStack_5d8 = puVar22 + 0x25b40" identifier = (binary_expression "puVar22 + 0x25b40" identifier + number_literal)) ;) (expression_statement "puVar21 = auStack_5f0;" (assignment_expression "puVar21 = auStack_5f0" identifier = identifier) ;) (expression_statement "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);" (assignment_expression "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c)" identifier = (pointer_expression "*(undefined4 **)(puVar22 + 0x1df5c)" * (cast_expression "(undefined4 **)(puVar22 + 0x1df5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1df5c)" ( (binary_expression "puVar22 + 0x1df5c" identifier + number_literal) ))))) ;) (expression_statement "uStack_5c0 = (uint)bStack_575;" (assignment_expression "uStack_5c0 = (uint)bStack_575" identifier = (cast_expression "(uint)bStack_575" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar27 = param_2 + 1;" (assignment_expression "pbVar27 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iStack_5b8 = 0;" (assignment_expression "iStack_5b8 = 0" identifier = number_literal) ;) (expression_statement "pbStack_5b4 = (byte *)*puVar16;" (assignment_expression "pbStack_5b4 = (byte *)*puVar16" identifier = (cast_expression "(byte *)*puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" identifier = identifier) ;) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "pbStack_5c4 = param_4;" (assignment_expression "pbStack_5c4 = param_4" identifier = identifier) ;) (expression_statement "uStack_5b0 = unaff_s0;" (assignment_expression "uStack_5b0 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_5ac = unaff_s1;" (assignment_expression "uStack_5ac = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);" (assignment_expression "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + 0x1de9c))(param_2)" (parenthesized_expression "(**(code **)(puVar22 + 0x1de9c))" ( (pointer_expression "**(code **)(puVar22 + 0x1de9c)" * (pointer_expression "*(code **)(puVar22 + 0x1de9c)" * (cast_expression "(code **)(puVar22 + 0x1de9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1de9c)" ( (binary_expression "puVar22 + 0x1de9c" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "iVar19 = (int)(char)param_2[1];" (assignment_expression "iVar19 = (int)(char)param_2[1]" identifier = (cast_expression "(int)(char)param_2[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" { (expression_statement "unaff_s5 = (int *)0x0;" (assignment_expression "unaff_s5 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = *(byte **)(puStack_5d8 + -0x7fd8);" (assignment_expression "param_3 = *(byte **)(puStack_5d8 + -0x7fd8)" identifier = (pointer_expression "*(byte **)(puStack_5d8 + -0x7fd8)" * (cast_expression "(byte **)(puStack_5d8 + -0x7fd8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_5d8 + -0x7fd8)" ( (binary_expression "puStack_5d8 + -0x7fd8" identifier + number_literal) ))))) ;) (expression_statement "piStack_5bc = &iStack_5b8;" (assignment_expression "piStack_5bc = &iStack_5b8" identifier = (pointer_expression "&iStack_5b8" & identifier)) ;) (expression_statement "unaff_s1 = (uint)(iVar3 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(iVar3 - 0x3fU < 2)" identifier = (call_expression "(uint)(iVar3 - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 - 0x3fU < 2)" ( (binary_expression "iVar3 - 0x3fU < 2" (binary_expression "iVar3 - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;" (assignment_expression "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c" identifier = (binary_expression "*(int *)(puStack_5d8 + -0x7fc8) + 0x671c" (pointer_expression "*(int *)(puStack_5d8 + -0x7fc8)" * (cast_expression "(int *)(puStack_5d8 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_5d8 + -0x7fc8)" ( (binary_expression "puStack_5d8 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar8 = auStack_5f0;" (assignment_expression "puVar8 = auStack_5f0" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar27;" (assignment_expression "unaff_s6 = pbVar27" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" statement_identifier : (do_statement "do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" do (compound_statement "{\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    }" { (expression_statement "puVar21 = puVar8;" (assignment_expression "puVar21 = puVar8" identifier = identifier) ;) (if_statement "if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" if (parenthesized_expression "(iVar19 == 0x5b)" ( (binary_expression "iVar19 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }" { (if_statement "if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" if (parenthesized_expression "(*(int *)(param_3 + -0x5830) == 0)" ( (binary_expression "*(int *)(param_3 + -0x5830) == 0" (pointer_expression "*(int *)(param_3 + -0x5830)" * (cast_expression "(int *)(param_3 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" { (expression_statement "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);" (assignment_expression "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8)" identifier = (call_expression "(**(code **)(puVar22 + -0x7c74))(iStack_5c8)" (parenthesized_expression "(**(code **)(puVar22 + -0x7c74))" ( (pointer_expression "**(code **)(puVar22 + -0x7c74)" * (pointer_expression "*(code **)(puVar22 + -0x7c74)" * (cast_expression "(code **)(puVar22 + -0x7c74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7c74)" ( (binary_expression "puVar22 + -0x7c74" identifier + number_literal) ))))) )) (argument_list "(iStack_5c8)" ( identifier )))) ;) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar19 != 0) {\n            uVar31 = 1;\n          }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar31 = 1;\n          }" { (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(param_3 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(param_3 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(param_3 + -0x5830)" * (cast_expression "(undefined4 *)(param_3 + -0x5830)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) })) (expression_statement "bVar12 = pbVar27[1];" (assignment_expression "bVar12 = pbVar27[1]" identifier = (subscript_expression "pbVar27[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar27 + 1;" (assignment_expression "pbVar18 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" if (parenthesized_expression "((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))))" ( (binary_expression "(bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" (parenthesized_expression "(bVar12 == 0x21)" ( (binary_expression "bVar12 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" ( (parenthesized_expression "(*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))" ( (binary_expression "*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)" (binary_expression "*(int *)(param_3 + -0x5830) < 0" (pointer_expression "*(int *)(param_3 + -0x5830)" * (cast_expression "(int *)(param_3 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + -0x5830)" ( (binary_expression "param_3 + -0x5830" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar12 == 0x5e)" ( (binary_expression "bVar12 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" { (expression_statement "bVar12 = pbVar27[2];" (assignment_expression "bVar12 = pbVar27[2]" identifier = (subscript_expression "pbVar27[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar27 + 2;" (assignment_expression "pbVar18 = pbVar27 + 2" identifier = (binary_expression "pbVar27 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" { (expression_statement "bVar12 = pbVar18[1];" (assignment_expression "bVar12 = pbVar18[1]" identifier = (subscript_expression "pbVar18[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar14 = (byte *)0x5d;" (assignment_expression "pbVar14 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" while (parenthesized_expression "(pbVar27 = pbVar18 + 1, bVar12 != 0x5d)" ( (comma_expression "pbVar27 = pbVar18 + 1, bVar12 != 0x5d" (assignment_expression "pbVar27 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) , (binary_expression "bVar12 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" { (if_statement "if (bVar12 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar18 = pbVar27;" (assignment_expression "pbVar18 = pbVar27" identifier = identifier) ;) (expression_statement "bVar12 = *pbVar27;" (assignment_expression "bVar12 = *pbVar27" identifier = (pointer_expression "*pbVar27" * identifier)) ;) })) (expression_statement "iVar19 = (int)(char)pbVar18[1];" (assignment_expression "iVar19 = (int)(char)pbVar18[1]" identifier = (cast_expression "(int)(char)pbVar18[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar18[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar18[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" else (compound_statement "{\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" { (expression_statement "pbVar14 = &DAT_c0000601;" (assignment_expression "pbVar14 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar7 = iVar19 - 0x21U & 0xff;" (assignment_expression "uVar7 = iVar19 - 0x21U & 0xff" identifier = (binary_expression "iVar19 - 0x21U & 0xff" (binary_expression "iVar19 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar6 = (byte *)(uint)(uVar7 < 0x20);" (assignment_expression "pbVar6 = (byte *)(uint)(uVar7 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar7 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar7 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < 0x20)" ( (binary_expression "uVar7 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }" { (if_statement "if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0))" ( (binary_expression "(iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)" (parenthesized_expression "(iVar19 == 0x7c)" ( (binary_expression "iVar19 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (int *)0x0)" ( (binary_expression "unaff_s5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar18 = pbStack_5cc;" (assignment_expression "pbVar18 = pbStack_5cc" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar18 = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbVar18 = pbVar27 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar27 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + 7)" ( (binary_expression "pbVar18 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar6 = pbVar27 + -(int)unaff_s6;" (assignment_expression "pbVar6 = pbVar27 + -(int)unaff_s6" identifier = (binary_expression "pbVar27 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar27 + 1;" (assignment_expression "pbVar17 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + 7)" ( (binary_expression "pbVar18 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar26 = puVar21 + iVar5;" (assignment_expression "puVar26 = puVar21 + iVar5" identifier = (binary_expression "puVar21 + iVar5" identifier + identifier)) ;) (expression_statement "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);" (assignment_expression "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18)" identifier = (cast_expression "(int *)(puVar21 + iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar5 + 0x18)" ( (binary_expression "puVar21 + iVar5 + 0x18" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);" (assignment_expression "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar22 + -0x7bfc)" * (pointer_expression "*(code **)(puVar22 + -0x7bfc)" * (cast_expression "(code **)(puVar22 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7bfc)" ( (binary_expression "puVar22 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar21 + iVar5 + 0x1c)" ( (binary_expression "puVar21 + iVar5 + 0x1c" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) ))))) ;) (expression_statement "piVar13 = piStack_5bc;" (assignment_expression "piVar13 = piStack_5bc" identifier = identifier) ;) (expression_statement "piVar10 = piStack_5d0;" (assignment_expression "piVar10 = piStack_5d0" identifier = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*piStack_5d0 = 0;" (assignment_expression "*piStack_5d0 = 0" (pointer_expression "*piStack_5d0" * identifier) = number_literal) ;) (expression_statement "piStack_5bc = piVar10;" (assignment_expression "piStack_5bc = piVar10" identifier = identifier) ;) (expression_statement "*piVar13 = (int)piVar10;" (assignment_expression "*piVar13 = (int)piVar10" (pointer_expression "*piVar13" * identifier) = (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar27 = pbVar17;" (assignment_expression "pbVar27 = pbVar17" identifier = identifier) ;) (expression_statement "puVar21 = puVar21 + iVar5;" (assignment_expression "puVar21 = puVar21 + iVar5" identifier = (binary_expression "puVar21 + iVar5" identifier + identifier)) ;) (expression_statement "puVar8 = puVar26;" (assignment_expression "puVar8 = puVar26" identifier = identifier) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];" statement_identifier : (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar7 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar7 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar7 & 0x1f)" number_literal >> (parenthesized_expression "(uVar7 & 0x1f)" ( (binary_expression "uVar7 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" { (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar19 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar19 != 0x28)" ( (binary_expression "iVar19 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0002b91c;" goto statement_identifier ;)) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + 1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + 1)" identifier = (cast_expression "(int *)((int)unaff_s5 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + 1)" ( (binary_expression "(int)unaff_s5 + 1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar19 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar19 != 0x29)" ( (binary_expression "iVar19 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" if (parenthesized_expression "(unaff_s5 == (int *)0x0)" ( (binary_expression "unaff_s5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" { (if_statement "if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < iVar3 - 0x3fU)" ( (binary_expression "1 < iVar3 - 0x3fU" number_literal < (binary_expression "iVar3 - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar27 + (1 - (int)unaff_s6)" identifier + (parenthesized_expression "(1 - (int)unaff_s6)" ( (binary_expression "1 - (int)unaff_s6" number_literal - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" if (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" { (expression_statement "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbStack_5cc + 7)" ( (binary_expression "pbStack_5cc + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);" (assignment_expression "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" ( (pointer_expression "**(code **)(puVar22 + -0x7bfc)" * (pointer_expression "*(code **)(puVar22 + -0x7bfc)" * (cast_expression "(code **)(puVar22 + -0x7bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7bfc)" ( (binary_expression "puVar22 + -0x7bfc" identifier + number_literal) ))))) )) (argument_list "(puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" ( (binary_expression "puVar21 + iVar19 + 0x1c" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar27 - (int)unaff_s6" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "piVar10 = piStack_5bc;" (assignment_expression "piVar10 = piStack_5bc" identifier = identifier) ;) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" identifier = identifier) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18)" * (cast_expression "(undefined4 *)(puVar21 + iVar19 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar19 + 0x18)" ( (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*piVar10 = (int)(puVar21 + iVar19 + 0x18);" (assignment_expression "*piVar10 = (int)(puVar21 + iVar19 + 0x18)" (pointer_expression "*piVar10" * identifier) = (cast_expression "(int)(puVar21 + iVar19 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar21 + iVar19 + 0x18)" ( (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" identifier + identifier) + number_literal) )))) ;) (if_statement "if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(iStack_5b8 == 0)" ( (binary_expression "iStack_5b8 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a14" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(pbVar27[-1] != 0x29)" ( (binary_expression "pbVar27[-1] != 0x29" (subscript_expression "pbVar27[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a24" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (if_statement "if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" if (parenthesized_expression "(0x1f < iVar3 - 0x21U)" ( (binary_expression "0x1f < iVar3 - 0x21U" number_literal < (binary_expression "iVar3 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" { (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" identifier = (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" ( (pointer_expression "**(code **)(puVar22 + -0x7d80)" * (pointer_expression "*(code **)(puVar22 + -0x7d80)" * (cast_expression "(code **)(puVar22 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7d80)" ( (binary_expression "puVar22 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a38" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (expression_statement "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" identifier = (cast_expression "(byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" (parenthesized_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))" ( (pointer_expression "*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" * (cast_expression "(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" ( (binary_expression "puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" * (cast_expression "(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" ( (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4" (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" * (cast_expression "(int *)(puVar22 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x7fc8)" ( (binary_expression "puVar22 + -0x7fc8" identifier + number_literal) )))) + number_literal) + (binary_expression "(iVar3 - 0x21U) * 4" (parenthesized_expression "(iVar3 - 0x21U)" ( (binary_expression "iVar3 - 0x21U" identifier - number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" identifier = (cast_expression "(int)(char)pbVar27[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar27[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar27[1]" identifier [ number_literal ])))) ;) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + -1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + -1)" identifier = (cast_expression "(int *)((int)unaff_s5 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + -1)" ( (binary_expression "(int)unaff_s5 + -1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (labeled_statement "joined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;" statement_identifier : (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar8 = puVar21;" (assignment_expression "puVar8 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);" statement_identifier : (expression_statement "pcVar23 = *(code **)(puVar22 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(puVar22 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar22 + -0x7c10)" * (cast_expression "(code **)(puVar22 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x7c10)" ( (binary_expression "puVar22 + -0x7c10" identifier + number_literal) ))))) ;)) (if_statement "if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }" if (parenthesized_expression "(pbStack_5b4 == (byte *)*puVar16)" ( (binary_expression "pbStack_5b4 == (byte *)*puVar16" identifier == (cast_expression "(byte *)*puVar16" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) )) (compound_statement "{\n    return (byte *)0xffffffff;\n  }" { (return_statement "return (byte *)0xffffffff;" return (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pcVar30 = FUN_0002bd90;" (assignment_expression "pcVar30 = FUN_0002bd90" identifier = identifier) ;) (expression_statement "pbVar18 = pbStack_5b4;" (assignment_expression "pbVar18 = pbStack_5b4" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar24 = pcVar23 + 0x25450;" (assignment_expression "pcVar24 = pcVar23 + 0x25450" identifier = (binary_expression "pcVar23 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);" (assignment_expression "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x1d86c)" * (cast_expression "(undefined4 **)(pcVar23 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1d86c)" ( (binary_expression "pcVar23 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_5f0;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_5f0" (pointer_expression "*(undefined1 **)(puVar21 + -8)" * (cast_expression "(undefined1 **)(puVar21 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -8)" ( (binary_expression "puVar21 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1c) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x1c) = param_3" (pointer_expression "*(byte **)(puVar21 + -0x1c)" * (cast_expression "(byte **)(puVar21 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -0x160) = pcVar24;" (assignment_expression "*(code **)(puVar21 + -0x160) = pcVar24" (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar30" (pointer_expression "*(code **)(puVar21 + -4)" * (cast_expression "(code **)(puVar21 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -4)" ( (binary_expression "puVar21 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0xc) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0xc)" * (cast_expression "(byte **)(puVar21 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0xc)" ( (binary_expression "puVar21 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x10)" * (cast_expression "(byte **)(puVar21 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x10)" ( (binary_expression "puVar21 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x14)" * (cast_expression "(int **)(puVar21 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -0x18)" * (cast_expression "(byte **)(puVar21 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18)" ( (binary_expression "puVar21 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar16;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar16" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" * (cast_expression "(undefined4 **)(puVar21 + -0x20)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x20)" ( (binary_expression "puVar21 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar21 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x24)" * (cast_expression "(uint *)(puVar21 + -0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x24)" ( (binary_expression "puVar21 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x28)" * (cast_expression "(byte **)(puVar21 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x28)" ( (binary_expression "puVar21 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar21 + -0x144) = puVar9;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar9" (pointer_expression "*(undefined4 **)(puVar21 + -0x144)" * (cast_expression "(undefined4 **)(puVar21 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x144)" ( (binary_expression "puVar21 + -0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar17 = (byte *)(uint)*pbVar18;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar18" identifier = (binary_expression "(byte *)(uint)*pbVar18" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar9" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" * (cast_expression "(undefined4 *)(puVar21 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pbVar20 = *(byte **)(pcVar23 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(pcVar23 + 0x1d488)" identifier = (pointer_expression "*(byte **)(pcVar23 + 0x1d488)" * (cast_expression "(byte **)(pcVar23 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar27 = pbVar6;" (assignment_expression "pbVar27 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar14;" (assignment_expression "pbVar28 = pbVar14" identifier = identifier) ;) (if_statement "if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" if (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" { (expression_statement "uVar7 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar7 = *(uint *)(puVar21 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar21 + 0x10)" * (cast_expression "(uint *)(puVar21 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x10)" ( (binary_expression "puVar21 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = uVar7 & 2;" (assignment_expression "unaff_s1 = uVar7 & 2" identifier = (binary_expression "uVar7 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar7 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar7 & 0x10)" identifier = (cast_expression "(byte *)(uVar7 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar7 & 0x10)" ( (binary_expression "uVar7 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar7 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar7 & 5" (pointer_expression "*(uint *)(puVar21 + -0x140)" * (cast_expression "(uint *)(puVar21 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x140)" ( (binary_expression "puVar21 + -0x140" identifier + number_literal) )))) = (binary_expression "uVar7 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478)" (pointer_expression "*(undefined4 *)(puVar21 + -0x148)" * (cast_expression "(undefined4 *)(puVar21 + -0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x148)" ( (binary_expression "puVar21 + -0x148" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar23 + 0x1d478)" * (cast_expression "(undefined4 *)(pcVar23 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d478)" ( (binary_expression "pcVar23 + 0x1d478" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;" (assignment_expression "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70" (pointer_expression "*(byte **)(puVar21 + -0x14c)" * (cast_expression "(byte **)(puVar21 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14c)" ( (binary_expression "puVar21 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar20 + 0x7c70" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar21 + -0x138)" * (cast_expression "(int *)(puVar21 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x138)" ( (binary_expression "puVar21 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" * (cast_expression "(int *)(pcVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar21 + -0x13c)" * (cast_expression "(int *)(puVar21 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x13c)" ( (binary_expression "puVar21 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" * (cast_expression "(int *)(pcVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1d488)" ( (binary_expression "pcVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar4 = pbVar18;" (assignment_expression "pbVar4 = pbVar18" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);" do (compound_statement "{\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    }" { (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" * (cast_expression "(code **)(pcVar24 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d7c)" ( (binary_expression "pcVar24 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" identifier = (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);" (assignment_expression "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4 + 3)" ( (binary_expression "*piVar10 + (int)pbVar17 * 4 + 3" (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" if (parenthesized_expression "(((uint)(pbVar18 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + -0x21)" ( (binary_expression "pbVar18 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" { (expression_statement "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" identifier = (cast_expression "(byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" * (parenthesized_expression "(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (binary_expression "pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar21 + -0x14c)" * (cast_expression "(int *)(puVar21 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x14c)" ( (binary_expression "puVar21 + -0x14c" identifier + number_literal) )))) + (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 + -0x21)" ( (binary_expression "pbVar18 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar4;" return identifier ;) })) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar28 == pbVar6) goto LAB_0002c064;" if (parenthesized_expression "(pbVar28 == pbVar6)" ( (binary_expression "pbVar28 == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar17 = (byte *)(uint)*pbVar28;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar28" identifier = (binary_expression "(byte *)(uint)*pbVar28" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" { (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" ( (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" * (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" * (cast_expression "(code **)(pcVar24 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d7c)" ( (binary_expression "pcVar24 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" identifier = (pointer_expression "*(code **)(puVar21 + -0x160)" * (cast_expression "(code **)(puVar21 + -0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);" (assignment_expression "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4)" identifier = (pointer_expression "*(byte **)(*piVar10 + (int)pbVar17 * 4)" * (cast_expression "(byte **)(*piVar10 + (int)pbVar17 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4)" ( (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar17 != pbVar18) goto LAB_0002c064;" if (parenthesized_expression "(pbVar17 != pbVar18)" ( (binary_expression "pbVar17 != pbVar18" identifier != identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar4 = *(byte **)(puVar21 + -0x154);" (assignment_expression "pbVar4 = *(byte **)(puVar21 + -0x154)" identifier = (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar17 = (byte *)(uint)*pbVar4;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar4" identifier = (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar4 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar4 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" * (cast_expression "(byte **)(puVar21 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x154)" ( (binary_expression "puVar21 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar28 != pbVar6)" ( (binary_expression "pbVar28 != pbVar6" identifier != identifier) )) (compound_statement "{\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" { (expression_statement "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8)" identifier = (cast_expression "(byte *)(*(uint *)(puVar21 + 0x10) & 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar21 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar21 + 0x10) & 8" (pointer_expression "*(uint *)(puVar21 + 0x10)" * (cast_expression "(uint *)(puVar21 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x10)" ( (binary_expression "puVar21 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n    }" { (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" else (compound_statement "{\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" { (expression_statement "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);" (assignment_expression "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*pbVar28 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*pbVar28 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar28 != 0x2f)" ( (binary_expression "*pbVar28 != 0x2f" (pointer_expression "*pbVar28" * identifier) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar21 + -0x2c)" * (cast_expression "(int *)(puVar21 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x2c)" ( (binary_expression "puVar21 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }" if (parenthesized_expression "(iVar3 == **(int **)(puVar21 + -0x144))" ( (binary_expression "iVar3 == **(int **)(puVar21 + -0x144)" identifier == (pointer_expression "**(int **)(puVar21 + -0x144)" * (pointer_expression "*(int **)(puVar21 + -0x144)" * (cast_expression "(int **)(puVar21 + -0x144)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x144)" ( (binary_expression "puVar21 + -0x144" identifier + number_literal) )))))) )) (compound_statement "{\n    return pbVar11;\n  }" { (return_statement "return pbVar11;" return identifier ;) })) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7c10)" * (cast_expression "(code **)(pcVar24 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c10)" ( (binary_expression "pcVar24 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x1cbc4);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x1cbc4)" * (cast_expression "(code **)(pcVar23 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1cbc4)" ( (binary_expression "pcVar23 + 0x1cbc4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar21 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x19c)" * (cast_expression "(uint *)(puVar21 + -0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x19c)" ( (binary_expression "puVar21 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar10 = *(int **)(pcVar23 + 0x1cc28);" (assignment_expression "piVar10 = *(int **)(pcVar23 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar23 + 0x1cc28)" * (cast_expression "(int **)(pcVar23 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1cc28)" ( (binary_expression "pcVar23 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar28;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar28" (pointer_expression "*(byte **)(puVar21 + -0x180)" * (cast_expression "(byte **)(puVar21 + -0x180)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x180)" ( (binary_expression "puVar21 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x198) = pbVar17;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar17" (pointer_expression "*(byte **)(puVar21 + -0x198)" * (cast_expression "(byte **)(puVar21 + -0x198)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x198)" ( (binary_expression "puVar21 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c" (pointer_expression "*(code **)(puVar21 + -0x1c8)" * (cast_expression "(code **)(puVar21 + -0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) = (binary_expression "pcVar23 + 0x2480c" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar21 + -0x17c) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -0x17c) = pcVar30" (pointer_expression "*(code **)(puVar21 + -0x17c)" * (cast_expression "(code **)(puVar21 + -0x17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x17c)" ( (binary_expression "puVar21 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x184) = pbVar20;" (assignment_expression "*(byte **)(puVar21 + -0x184) = pbVar20" (pointer_expression "*(byte **)(puVar21 + -0x184)" * (cast_expression "(byte **)(puVar21 + -0x184)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x184)" ( (binary_expression "puVar21 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x188)" * (cast_expression "(byte **)(puVar21 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x188)" ( (binary_expression "puVar21 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x18c)" * (cast_expression "(int **)(puVar21 + -0x18c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18c)" ( (binary_expression "puVar21 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -400) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -400) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -400)" * (cast_expression "(byte **)(puVar21 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -400)" ( (binary_expression "puVar21 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x194) = pbVar6;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar6" (pointer_expression "*(byte **)(puVar21 + -0x194)" * (cast_expression "(byte **)(puVar21 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x194)" ( (binary_expression "puVar21 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x1a0)" * (cast_expression "(byte **)(puVar21 + -0x1a0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1a0)" ( (binary_expression "puVar21 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1b4) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1b4)" * (cast_expression "(int *)(puVar21 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x1b8) = pbVar14;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar14" (pointer_expression "*(byte **)(puVar21 + -0x1b8)" * (cast_expression "(byte **)(puVar21 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1b8)" ( (binary_expression "puVar21 + -0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar21 + -0x1a4) = *piVar10;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar10" (pointer_expression "*(int *)(puVar21 + -0x1a4)" * (cast_expression "(int *)(puVar21 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a4)" ( (binary_expression "puVar21 + -0x1a4" identifier + number_literal) )))) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar3 = (*pcVar24)();" (assignment_expression "iVar3 = (*pcVar24)()" identifier = (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);" statement_identifier : (expression_statement "pbVar14 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar14 = *(byte **)(puVar21 + -0x1b8)" identifier = (pointer_expression "*(byte **)(puVar21 + -0x1b8)" * (cast_expression "(byte **)(puVar21 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1b8)" ( (binary_expression "puVar21 + -0x1b8" identifier + number_literal) ))))) ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14)" identifier = (call_expression "(**(code **)(iVar19 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ca4)" * (pointer_expression "*(code **)(iVar19 + -0x7ca4)" * (cast_expression "(code **)(iVar19 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ca4)" ( (binary_expression "iVar19 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar14)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1d0)" ( (binary_expression "puVar21 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1b4)" * (cast_expression "(undefined4 *)(puVar21 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) , identifier , (binary_expression "pbVar14 + iVar3" identifier + identifier) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" { (expression_statement "puVar15 = puVar21 + -0x1ac;" (assignment_expression "puVar15 = puVar21 + -0x1ac" identifier = (binary_expression "puVar21 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (int *)(puVar21 + -0x1b4);" (assignment_expression "unaff_s5 = (int *)(puVar21 + -0x1b4)" identifier = (cast_expression "(int *)(puVar21 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1b4)" ( (binary_expression "puVar21 + -0x1b4" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar21 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1ac)" ( (binary_expression "puVar21 + -0x1ac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1a8)" * (cast_expression "(undefined4 *)(puVar21 + -0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a8)" ( (binary_expression "puVar21 + -0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);" (assignment_expression "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15)" identifier = (call_expression "(*pcVar23)(0,unaff_s5,0,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(0,unaff_s5,0,puVar15)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar6 = (byte *)(iVar3 + 1);" (assignment_expression "pbVar6 = (byte *)(iVar3 + 1)" identifier = (cast_expression "(byte *)(iVar3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 1)" ( (binary_expression "iVar3 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar6 == (byte *)0x0)" ( (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" ( (pointer_expression "**(code **)(iVar19 + -0x7be8)" * (pointer_expression "*(code **)(iVar19 + -0x7be8)" * (cast_expression "(code **)(iVar19 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7be8)" ( (binary_expression "iVar19 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" identifier = number_literal) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;)) (expression_statement "unaff_s6 = puVar21 + -0x1b8;" (assignment_expression "unaff_s6 = puVar21 + -0x1b8" identifier = (binary_expression "puVar21 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" identifier = identifier) ;) (expression_statement "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);" (assignment_expression "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar15)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar20 = pbVar4 + 1;" (assignment_expression "pbVar20 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" ( (pointer_expression "**(code **)(iVar19 + -0x7be8)" * (pointer_expression "*(code **)(iVar19 + -0x7be8)" * (cast_expression "(code **)(iVar19 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7be8)" ( (binary_expression "iVar19 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" { (expression_statement "uVar31 = 0x12d;" (assignment_expression "uVar31 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar6 + (int)pbVar20;" (assignment_expression "pbVar18 = pbVar6 + (int)pbVar20" identifier = (binary_expression "pbVar6 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18))" ( (binary_expression "(pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)" (parenthesized_expression "(pbVar18 < pbVar6)" ( (binary_expression "pbVar18 < pbVar6" identifier < identifier) )) || (parenthesized_expression "((byte *)0x3fffffff < pbVar18)" ( (binary_expression "(byte *)0x3fffffff < pbVar18" (cast_expression "(byte *)0x3fffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }" { (labeled_statement "LAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;" statement_identifier : (expression_statement "pbVar18 = (byte *)0xffffffff;" (assignment_expression "pbVar18 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar16 = 0xc;" (assignment_expression "*puVar16 = 0xc" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" else (if_statement "if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "(pbVar18 < (byte *)0x7d0)" ( (binary_expression "pbVar18 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }" { (expression_statement "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar18 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar18 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar18 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar18 * 4 + 7U" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);" (assignment_expression "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8)" identifier = (cast_expression "(int *)(puVar21 + iVar5 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar5 + -0x1c8)" ( (binary_expression "puVar21 + iVar5 + -0x1c8" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar17 = (byte *)(piVar13 + (int)pbVar6);" (assignment_expression "pbVar17 = (byte *)(piVar13 + (int)pbVar6)" identifier = (cast_expression "(byte *)(piVar13 + (int)pbVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + (int)pbVar6)" ( (binary_expression "piVar13 + (int)pbVar6" identifier + (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(piVar13,unaff_s5,pbVar6,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d80))" ( (pointer_expression "**(code **)(iVar19 + -0x7d80)" * (pointer_expression "*(code **)(iVar19 + -0x7d80)" * (cast_expression "(code **)(iVar19 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d80)" ( (binary_expression "iVar19 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" * (cast_expression "(int *)(iVar19 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x7fc8)" ( (binary_expression "iVar19 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar19 + -0x7ba4)" * (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + iVar5 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + iVar5 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + iVar5 + -0x1d0)" ( (binary_expression "puVar21 + iVar5 + -0x1d0" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar17 + (int)pbVar4 * 4" identifier + (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" identifier = identifier) ;) (expression_statement "unaff_s5 = piVar13;" (assignment_expression "unaff_s5 = piVar13" identifier = identifier) ;) (expression_statement "puVar8 = puVar21 + iVar5 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + iVar5 + -0x1e0" identifier = (binary_expression "puVar21 + iVar5 + -0x1e0" (binary_expression "puVar21 + iVar5" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" { (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7c80))();" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar19 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7c80))" ( (pointer_expression "**(code **)(iVar19 + -0x7c80)" * (pointer_expression "*(code **)(iVar19 + -0x7c80)" * (cast_expression "(code **)(iVar19 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7c80)" ( (binary_expression "iVar19 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1bc)" * (cast_expression "(int *)(puVar21 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);" (assignment_expression "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4)" identifier = (cast_expression "(byte *)(iVar3 + (int)pbVar6 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + (int)pbVar6 * 4)" ( (binary_expression "iVar3 + (int)pbVar6 * 4" identifier + (binary_expression "(int)pbVar6 * 4" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);" (call_expression "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(iVar3,unaff_s5,pbVar6,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7ba4)" * (cast_expression "(code **)(iVar19 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7ba4)" ( (binary_expression "iVar19 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1d0)" ( (binary_expression "puVar21 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) , identifier , (binary_expression "pbVar17 + (int)pbVar4 * 4" identifier + (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar27 << 0x1d)" ( (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))" ( (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" * (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" * (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" ( (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7bd8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar21 + -0x1bc))" ( (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1bc)" ( (binary_expression "puVar21 + -0x1bc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1c8)" * (cast_expression "(int *)(puVar21 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1c8)" ( (binary_expression "puVar21 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" identifier = identifier) ;) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1a4)" identifier = (pointer_expression "*(int *)(puVar21 + -0x1a4)" * (cast_expression "(int *)(puVar21 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0x1a4)" ( (binary_expression "puVar21 + -0x1a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c10)" * (cast_expression "(code **)(iVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c10)" ( (binary_expression "iVar3 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == *piVar10) {\n    return pbVar18;\n  }" if (parenthesized_expression "(iVar19 == *piVar10)" ( (binary_expression "iVar19 == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return pbVar18;\n  }" { (return_statement "return pbVar18;" return identifier ;) })) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar24 = pcVar23 + 0x244c0;" (assignment_expression "pcVar24 = pcVar23 + 0x244c0" identifier = (binary_expression "pcVar23 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);" (assignment_expression "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar23 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar23 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c8dc)" ( (binary_expression "pcVar23 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar8 + -0xf4) = puVar16;" (assignment_expression "*(undefined4 **)(puVar8 + -0xf4) = puVar16" (pointer_expression "*(undefined4 **)(puVar8 + -0xf4)" * (cast_expression "(undefined4 **)(puVar8 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar8 + -0x110) = pcVar24;" (assignment_expression "*(code **)(puVar8 + -0x110) = pcVar24" (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar8 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar8 + -4) = pcVar30" (pointer_expression "*(code **)(puVar8 + -4)" * (cast_expression "(code **)(puVar8 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -4)" ( (binary_expression "puVar8 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar8 + -8)" * (cast_expression "(undefined1 **)(puVar8 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -8)" ( (binary_expression "puVar8 + -8" identifier + number_literal) )))) = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar8 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0xc)" * (cast_expression "(byte **)(puVar8 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xc)" ( (binary_expression "puVar8 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar8 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar8 + -0x10)" * (cast_expression "(byte **)(puVar8 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x10)" ( (binary_expression "puVar8 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar8 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar8 + -0x14)" * (cast_expression "(int **)(puVar8 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x14)" ( (binary_expression "puVar8 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar8 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar8 + -0x18)" * (cast_expression "(byte **)(puVar8 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x18)" ( (binary_expression "puVar8 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x1c) = pbVar6;" (assignment_expression "*(byte **)(puVar8 + -0x1c) = pbVar6" (pointer_expression "*(byte **)(puVar8 + -0x1c)" * (cast_expression "(byte **)(puVar8 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x1c)" ( (binary_expression "puVar8 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x20) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x20) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x20)" * (cast_expression "(byte **)(puVar8 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x20)" ( (binary_expression "puVar8 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x24) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x24) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x24)" * (cast_expression "(int **)(puVar8 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x24)" ( (binary_expression "puVar8 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x28) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x28) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x28)" * (cast_expression "(byte **)(puVar8 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x28)" ( (binary_expression "puVar8 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + 4) = pbVar14;" (assignment_expression "*(byte **)(puVar8 + 4) = pbVar14" (pointer_expression "*(byte **)(puVar8 + 4)" * (cast_expression "(byte **)(puVar8 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar8 + -0x100) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x100) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x2c) = *puVar16;" (assignment_expression "*(undefined4 *)(puVar8 + -0x2c) = *puVar16" (pointer_expression "*(undefined4 *)(puVar8 + -0x2c)" * (cast_expression "(undefined4 *)(puVar8 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x2c)" ( (binary_expression "puVar8 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar16" * identifier)) ;) (if_statement "if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }" { (if_statement "if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" statement_identifier : (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c840)" * (pointer_expression "*(code **)(pcVar23 + 0x1c840)" * (cast_expression "(code **)(pcVar23 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c840)" ( (binary_expression "pcVar23 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar8 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar8 + -0xf4)" * (cast_expression "(int **)(puVar8 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c7f8)" * (cast_expression "(code **)(pcVar23 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c7f8)" ( (binary_expression "pcVar23 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" * (cast_expression "(undefined4 *)(puVar8 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + 4)" * (cast_expression "(undefined4 *)(puVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100)" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" * (cast_expression "(undefined4 *)(puVar8 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);" statement_identifier : (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" identifier = (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar21 = puVar8 + -0xd0;" (assignment_expression "puVar21 = puVar8 + -0xd0" identifier = (binary_expression "puVar8 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar5 = *(int *)(puVar8 + -0xf8);" (assignment_expression "iVar5 = *(int *)(puVar8 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d60)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7d60)" * (cast_expression "(code **)(pcVar24 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d60)" ( (binary_expression "pcVar24 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" identifier = (cast_expression "(byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" ( (binary_expression "*(int *)(pcVar24 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar24 + -0x7fc8)" * (cast_expression "(int *)(pcVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + -0x7fc8)" ( (binary_expression "pcVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + iVar5 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar3 + iVar5 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar3 + iVar5 + -1)" * (cast_expression "(undefined1 *)(iVar3 + iVar5 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar5 + -1)" ( (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar14,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar19)" ( (binary_expression "-1 < iVar19" number_literal < identifier) )) (compound_statement "{\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar19 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar19 = *(int *)(iVar25 + -0x7fc8)" identifier = (pointer_expression "*(int *)(iVar25 + -0x7fc8)" * (cast_expression "(int *)(iVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7fc8)" ( (binary_expression "iVar25 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7d60)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d60)" * (cast_expression "(code **)(iVar25 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d60)" ( (binary_expression "iVar25 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar8 + -0xc0);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar8 + -0xc0)" * (cast_expression "(int *)(puVar8 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" * (cast_expression "(undefined4 *)(puVar8 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(iVar19 + 0x6154);" (assignment_expression "pbVar14 = (byte *)(iVar19 + 0x6154)" identifier = (cast_expression "(byte *)(iVar19 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x6154)" ( (binary_expression "iVar19 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" * (cast_expression "(undefined4 *)(puVar8 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar14,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar19)" ( (binary_expression "-1 < iVar19" number_literal < identifier) )) (compound_statement "{\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar4 = (byte *)0xffffff9c;" (assignment_expression "pbVar4 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xec)" * (cast_expression "(undefined4 *)(puVar8 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xec)" ( (binary_expression "puVar8 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xe4)" * (cast_expression "(undefined4 *)(puVar8 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe4)" ( (binary_expression "puVar8 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" * (cast_expression "(undefined4 *)(puVar8 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xdc)" * (cast_expression "(undefined4 *)(puVar8 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xdc)" ( (binary_expression "puVar8 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar8 + -0xe8)" * (cast_expression "(int *)(puVar8 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe8)" ( (binary_expression "puVar8 + -0xe8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(iVar25 + -0x7fc8)" * (cast_expression "(int *)(iVar25 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + -0x7fc8)" ( (binary_expression "iVar25 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4)))" ( (binary_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))" (parenthesized_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec))" ( (binary_expression "*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)" (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar8 + -0xec)" * (cast_expression "(int *)(puVar8 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xec)" ( (binary_expression "puVar8 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar29 == *(int *)(puVar8 + -0xe4))" ( (binary_expression "iVar29 == *(int *)(puVar8 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar8 + -0xe4)" * (cast_expression "(int *)(puVar8 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe4)" ( (binary_expression "puVar8 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7cac)" * (cast_expression "(code **)(iVar25 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cac)" ( (binary_expression "iVar25 + -0x7cac" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc))" ( (binary_expression "*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)" (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar8 + -0xdc)" * (cast_expression "(int *)(puVar8 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xdc)" ( (binary_expression "puVar8 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10)" identifier = (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar25 + -0x7d6c)" * (pointer_expression "*(code **)(iVar25 + -0x7d6c)" * (cast_expression "(code **)(iVar25 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d6c)" ( (binary_expression "iVar25 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar3 = *(int *)(puVar8 + -0xe0);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);" (assignment_expression "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1)" (pointer_expression "*(undefined1 **)(puVar8 + -0xe0)" * (cast_expression "(undefined1 **)(puVar8 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar14 = *(byte **)(puVar8 + -0xe0);" (assignment_expression "pbVar14 = *(byte **)(puVar8 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xe0)" * (cast_expression "(byte **)(puVar8 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );" (assignment_expression "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" identifier = (cast_expression "(byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" ( (binary_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14" (parenthesized_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8))" ( (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar25 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar25 + -0x7bd0)" * (pointer_expression "*(code **)(iVar25 + -0x7bd0)" * (cast_expression "(code **)(iVar25 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7bd0)" ( (binary_expression "iVar25 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" ( (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" if (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" ( (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" { (expression_statement "pbVar14 = pbVar18;" (assignment_expression "pbVar14 = pbVar18" identifier = identifier) ;) (expression_statement "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" identifier = (call_expression "(**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(**(code **)(pcVar24 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar24 + -0x7c78)" * (pointer_expression "*(code **)(pcVar24 + -0x7c78)" * (cast_expression "(code **)(pcVar24 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c78)" ( (binary_expression "pcVar24 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" * (cast_expression "(undefined4 *)(puVar8 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = *(int *)(puVar8 + -0x100);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x100)" identifier = (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" { (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" identifier = (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" { (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7cac)" * (cast_expression "(code **)(iVar25 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cac)" ( (binary_expression "iVar25 + -0x7cac" identifier + number_literal) ))))) ;) })))) (expression_statement "pbVar6 = *(byte **)(puVar8 + -0xe8);" (assignment_expression "pbVar6 = *(byte **)(puVar8 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xe8)" * (cast_expression "(byte **)(puVar8 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xe8)" ( (binary_expression "puVar8 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);" (assignment_expression "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0)" identifier = (cast_expression "(byte *)(*pcVar23)(pbVar4,pbVar6,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(pbVar4,pbVar6,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar4,pbVar6,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar4 < 0)" ( (binary_expression "(int)pbVar4 < 0" (cast_expression "(int)pbVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d6c)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7d6c)" * (cast_expression "(code **)(pcVar24 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7d6c)" ( (binary_expression "pcVar24 + -0x7d6c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d138:\n            (*pcVar23)(piVar10);" statement_identifier : (expression_statement "(*pcVar23)(piVar10);" (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(piVar10)" ( identifier ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" identifier = (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar4,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }" { (if_statement "if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7d1c);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar19 + -0x7d1c)" * (cast_expression "(code **)(iVar19 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d1c)" ( (binary_expression "iVar19 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" * (cast_expression "(undefined4 *)(puVar8 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" * (cast_expression "(undefined4 *)(puVar8 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd8)" * (cast_expression "(undefined4 *)(puVar8 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd8)" ( (binary_expression "puVar8 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" * (cast_expression "(undefined4 *)(puVar8 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" * (cast_expression "(undefined4 *)(puVar8 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd4)" ( (binary_expression "puVar8 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" * (cast_expression "(undefined4 *)(puVar8 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar10 = (int *)(*pcVar23)(pbVar4);" (assignment_expression "piVar10 = (int *)(*pcVar23)(pbVar4)" identifier = (cast_expression "(int *)(*pcVar23)(pbVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(pbVar4)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(pbVar4)" ( identifier ))))) ;) (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (labeled_statement "LAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar27[0] = 0;" statement_identifier : (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0;" (assignment_expression "pbVar27[3] = 0" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar13 = (int *)(*pcVar23)(piVar10);" (assignment_expression "piVar13 = (int *)(*pcVar23)(piVar10)" identifier = (cast_expression "(int *)(*pcVar23)(piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(piVar10)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" { (labeled_statement "LAB_0002d128:\n                    pbVar18 = (byte *)0x2;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x2;" (assignment_expression "pbVar18 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 2;" (assignment_expression "pbVar27[3] = 2" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar3 + -0x7d90))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d90))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d90))" ( (pointer_expression "**(code **)(iVar3 + -0x7d90)" * (pointer_expression "*(code **)(iVar3 + -0x7d90)" * (cast_expression "(code **)(iVar3 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d90)" ( (binary_expression "iVar3 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);" (assignment_expression "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar8 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar13 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" * (cast_expression "(char *)((int)piVar13 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002d0e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002cf58;" goto statement_identifier ;) })) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) goto LAB_0002d128;" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d128;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar13 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" * (cast_expression "(char *)((int)piVar13 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'.'" ' character ')) )) (goto_statement "goto LAB_0002cf34;" goto statement_identifier ;)) (labeled_statement "LAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar13 + 5) != '\0')" ( (binary_expression "*(char *)(piVar13 + 5) != '\0'" (pointer_expression "*(char *)(piVar13 + 5)" * (cast_expression "(char *)(piVar13 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 5)" ( (binary_expression "piVar13 + 5" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0002d0ec;" goto statement_identifier ;))) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d208;" goto statement_identifier ;) })) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10)" identifier = (call_expression "(**(code **)(iVar19 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar19 + -0x7d6c)" * (pointer_expression "*(code **)(iVar19 + -0x7d6c)" * (cast_expression "(code **)(iVar19 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7d6c)" ( (binary_expression "iVar19 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier )))) ;) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;" statement_identifier : (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" { (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar19 + -0x7cc8)" * (pointer_expression "*(code **)(iVar19 + -0x7cc8)" * (cast_expression "(code **)(iVar19 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7cc8)" ( (binary_expression "iVar19 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar3 + -0x7d6c))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar3 + -0x7d6c)" * (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar10)" ( identifier ))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar3 + -0x7d68))(pbVar4);" (call_expression "(**(code **)(iVar3 + -0x7d68))(pbVar4)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d68))" ( (pointer_expression "**(code **)(iVar3 + -0x7d68)" * (pointer_expression "*(code **)(iVar3 + -0x7d68)" * (cast_expression "(code **)(iVar3 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d68)" ( (binary_expression "iVar3 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar4)" ( identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" identifier = identifier) ;) (if_statement "if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) != 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar25 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar25 + -0x7cc8)" * (pointer_expression "*(code **)(iVar25 + -0x7cc8)" * (cast_expression "(code **)(iVar25 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7cc8)" ( (binary_expression "iVar25 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" identifier = (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" * (cast_expression "(int *)(puVar8 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x100)" ( (binary_expression "puVar8 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" * (cast_expression "(code **)(pcVar24 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7bd8)" ( (binary_expression "pcVar24 + -0x7bd8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" statement_identifier : (expression_statement "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" identifier = (pointer_expression "*(code **)(puVar8 + -0x110)" * (cast_expression "(code **)(puVar8 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;" statement_identifier : (expression_statement "*(byte **)pbVar27 = pbVar18;" (assignment_expression "*(byte **)pbVar27 = pbVar18" (pointer_expression "*(byte **)pbVar27" * (cast_expression "(byte **)pbVar27" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);" statement_identifier : (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar8 + -0xf4)" * (cast_expression "(int **)(puVar8 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf4)" ( (binary_expression "puVar8 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);" statement_identifier : (expression_statement "pbVar4 = *(byte **)(puVar8 + -0x2c);" (assignment_expression "pbVar4 = *(byte **)(puVar8 + -0x2c)" identifier = (pointer_expression "*(byte **)(puVar8 + -0x2c)" * (cast_expression "(byte **)(puVar8 + -0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x2c)" ( (binary_expression "puVar8 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" if (parenthesized_expression "(pbVar4 != (byte *)*piVar13)" ( (binary_expression "pbVar4 != (byte *)*piVar13" identifier != (cast_expression "(byte *)*piVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) )) (compound_statement "{\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" { (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar24 + -0x7c10)" * (cast_expression "(code **)(pcVar24 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + -0x7c10)" ( (binary_expression "pcVar24 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;" (assignment_expression "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70" (pointer_expression "*(code **)(puVar8 + -0x140)" * (cast_expression "(code **)(puVar8 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar23 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar8 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -300)" * (cast_expression "(undefined4 *)(puVar8 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -300)" ( (binary_expression "puVar8 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x130) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x130) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x130)" * (cast_expression "(byte **)(puVar8 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x130)" ( (binary_expression "puVar8 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar8 + -0x134) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x134) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x134)" * (cast_expression "(int **)(puVar8 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x134)" ( (binary_expression "puVar8 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar8 + -0x138) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x138) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x138)" * (cast_expression "(byte **)(puVar8 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x138)" ( (binary_expression "puVar8 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }" { (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c1a8)" * (cast_expression "(code **)(pcVar23 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c1a8)" ( (binary_expression "pcVar23 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar16 = 0x7a;" (assignment_expression "*puVar16 = 0x7a" (pointer_expression "*puVar16" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" else (if_statement "if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar4 == (byte *)0xa)" ( (binary_expression "pbVar4 == (byte *)0xa" identifier == (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" { (expression_statement "uVar31 = *(undefined4 *)pbVar14;" (assignment_expression "uVar31 = *(undefined4 *)pbVar14" identifier = (pointer_expression "*(undefined4 *)pbVar14" * (cast_expression "(undefined4 *)pbVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar23 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar23 + 0x1c2c8)" * (cast_expression "(code **)(pcVar23 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x1c2c8)" ( (binary_expression "pcVar23 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar23 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar23 + 0x1bea8)" * (cast_expression "(int *)(pcVar23 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x1bea8)" ( (binary_expression "pcVar23 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" { (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar8 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar8 + -0x140)" * (cast_expression "(int *)(puVar8 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar31)" ( identifier ))) ;) (expression_statement "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);" (assignment_expression "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar8 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x140)" * (cast_expression "(int *)(puVar8 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x140)" ( (binary_expression "puVar8 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar14[0] = 0;" (assignment_expression "pbVar14[0] = 0" (subscript_expression "pbVar14[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[1] = 0;" (assignment_expression "pbVar14[1] = 0" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[2] = 0;" (assignment_expression "pbVar14[2] = 0" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14[3] = 0;" (assignment_expression "pbVar14[3] = 0" (subscript_expression "pbVar14[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar16 = (undefined4 *)(*pcVar23)();" (assignment_expression "puVar16 = (undefined4 *)(*pcVar23)()" identifier = (cast_expression "(undefined4 *)(*pcVar23)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar16 = 0x3d;" (assignment_expression "*puVar16 = 0x3d" (pointer_expression "*puVar16" * identifier) = number_literal) ;) })) })))) (return_statement "return pbVar4;" return identifier ;) })) (return_statement "return *(byte **)(puVar8 + -0x108);" return (pointer_expression "*(byte **)(puVar8 + -0x108)" * (cast_expression "(byte **)(puVar8 + -0x108)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar13[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar13[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar13[5] & 0xffff0000U)" ( (binary_expression "piVar13[5] & 0xffff0000U" (subscript_expression "piVar13[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" { (if_statement "if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" if (parenthesized_expression "(*piVar13 == iVar29)" ( (binary_expression "*piVar13 == iVar29" (pointer_expression "*piVar13" * identifier) == identifier) )) (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" identifier = (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar13[1] == *(int *)(puVar8 + -0xfc))" ( (binary_expression "piVar13[1] == *(int *)(puVar8 + -0xfc)" (subscript_expression "piVar13[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" else (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" { (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" identifier = (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar19 == *(int *)(puVar8 + -0xf0))" ( (binary_expression "iVar19 == *(int *)(puVar8 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar8 + -0xf0)" * (cast_expression "(int *)(puVar8 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c30)" * (cast_expression "(code **)(iVar3 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c30)" ( (binary_expression "iVar3 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);" statement_identifier : (expression_statement "pbVar14 = (byte *)((int)piVar13 + 0x13);" (assignment_expression "pbVar14 = (byte *)((int)piVar13 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar13 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x13)" ( (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar8 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar8 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar8 + -0x118)" * (cast_expression "(undefined4 *)(puVar8 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x118)" ( (binary_expression "puVar8 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" identifier = identifier) ;) (expression_statement "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21)" identifier = (call_expression "(*pcVar23)(3,pbVar4,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(3,pbVar4,pbVar14,puVar21)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d38)" * (cast_expression "(code **)(iVar3 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d38)" ( (binary_expression "iVar3 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29))" ( (binary_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)" (parenthesized_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)))" ( (binary_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" (parenthesized_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar8 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar8 + -0xb8)" * (cast_expression "(uint *)(puVar8 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xb8)" ( (binary_expression "puVar8 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" ( (binary_expression "*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)" (pointer_expression "*(int *)(puVar8 + -0xd0)" * (cast_expression "(int *)(puVar8 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd0)" ( (binary_expression "puVar8 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xc0) != iVar29)" ( (binary_expression "*(int *)(puVar8 + -0xc0) != iVar29" (pointer_expression "*(int *)(puVar8 + -0xc0)" * (cast_expression "(int *)(puVar8 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xc0)" ( (binary_expression "puVar8 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" ( (binary_expression "*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)" (pointer_expression "*(int *)(puVar8 + -0xbc)" * (cast_expression "(int *)(puVar8 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xbc)" ( (binary_expression "puVar8 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar8 + -0xfc)" * (cast_expression "(int *)(puVar8 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));" (assignment_expression "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" ( (binary_expression "*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108)" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);" (assignment_expression "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" identifier = (cast_expression "(byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar3 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar3 + -0x7ca4)" * (pointer_expression "*(code **)(iVar3 + -0x7ca4)" * (cast_expression "(code **)(iVar3 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7ca4)" ( (binary_expression "iVar3 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar14)" ( identifier ))))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" if (parenthesized_expression "(pbVar17 <= pbVar18)" ( (binary_expression "pbVar17 <= pbVar18" identifier <= identifier) )) (compound_statement "{\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" { (expression_statement "pbVar28 = *(byte **)(puVar8 + -0xf8);" (assignment_expression "pbVar28 = *(byte **)(puVar8 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar8 + -0xf8)" * (cast_expression "(byte **)(puVar8 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar8 + 4) != 0)" ( (binary_expression "*(int *)(puVar8 + 4) != 0" (pointer_expression "*(int *)(puVar8 + 4)" * (cast_expression "(int *)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" { (expression_statement "pbVar18 = (byte *)0x22;" (assignment_expression "pbVar18 = (byte *)0x22" identifier = (cast_expression "(byte *)0x22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0x22;" (assignment_expression "pbVar27[3] = 0x22" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar20 = pbVar28;" (assignment_expression "pbVar20 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }" if (parenthesized_expression "(pbVar28 < pbVar18)" ( (binary_expression "pbVar28 < pbVar18" identifier < identifier) )) (compound_statement "{\n      pbVar20 = pbVar18;\n    }" { (expression_statement "pbVar20 = pbVar18;" (assignment_expression "pbVar20 = pbVar18" identifier = identifier) ;) })) (expression_statement "pbVar11 = pbVar20 + (int)pbVar28;" (assignment_expression "pbVar11 = pbVar20 + (int)pbVar28" identifier = (binary_expression "pbVar20 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c78);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7c78)" * (cast_expression "(code **)(iVar3 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7c78)" ( (binary_expression "iVar3 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar11 < pbVar28)" ( (binary_expression "pbVar11 < pbVar28" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" { (labeled_statement "LAB_0002d338:\n      pbVar18 = (byte *)0xc;" statement_identifier : (expression_statement "pbVar18 = (byte *)0xc;" (assignment_expression "pbVar18 = (byte *)0xc" identifier = (cast_expression "(byte *)0xc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar27[3] = 0xc;" (assignment_expression "pbVar27[3] = 0xc" (subscript_expression "pbVar27[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);" statement_identifier : (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7d6c)" * (cast_expression "(code **)(iVar3 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7d6c)" ( (binary_expression "iVar3 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar8 + -0x104) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0x104) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0x104)" * (cast_expression "(byte **)(puVar8 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar6 = pbVar11;" (assignment_expression "pbVar6 = pbVar11" identifier = identifier) ;) (expression_statement "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" identifier = (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" * (cast_expression "(undefined4 *)(puVar8 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar19 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);" (assignment_expression "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" ( (binary_expression "pbVar17 + iVar19 + *(int *)(puVar8 + -0x104)" (binary_expression "pbVar17 + iVar19" identifier + identifier) + (pointer_expression "*(int *)(puVar8 + -0x104)" * (cast_expression "(int *)(puVar8 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar17 + iVar19" identifier + identifier) , (binary_expression "*(int *)(puVar8 + -0xf8) - (int)pbVar17" (pointer_expression "*(int *)(puVar8 + -0xf8)" * (cast_expression "(int *)(puVar8 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar8 + -0xf8) = pbVar11;" (assignment_expression "*(byte **)(puVar8 + -0xf8) = pbVar11" (pointer_expression "*(byte **)(puVar8 + -0xf8)" * (cast_expression "(byte **)(puVar8 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + -0xf8)" ( (binary_expression "puVar8 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0xe0)" * (cast_expression "(undefined4 *)(puVar8 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar8 + -0x108) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x108)" * (cast_expression "(int *)(puVar8 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x108)" ( (binary_expression "puVar8 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" identifier = (call_expression "(**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" ( (pointer_expression "**(code **)(iVar3 + -0x7be0)" * (pointer_expression "*(code **)(iVar3 + -0x7be0)" * (cast_expression "(code **)(iVar3 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7be0)" ( (binary_expression "iVar3 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" ( (binary_expression "*(int *)(puVar8 + -0xe0) - (int)pbVar18" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" identifier = (pointer_expression "*(int *)(puVar8 + -0x110)" * (cast_expression "(int *)(puVar8 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x110)" ( (binary_expression "puVar8 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar8 + -0xd8);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar8 + -0xd8)" * (cast_expression "(int *)(puVar8 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd8)" ( (binary_expression "puVar8 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" * (cast_expression "(int *)(puVar8 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xe0)" ( (binary_expression "puVar8 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" * (cast_expression "(undefined1 *)(iVar3 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -1)" ( (binary_expression "iVar3 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" * (cast_expression "(undefined4 *)(puVar8 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xfc)" ( (binary_expression "puVar8 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" * (cast_expression "(undefined4 *)(puVar8 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xd4)" ( (binary_expression "puVar8 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" * (cast_expression "(undefined4 *)(puVar8 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0x104)" ( (binary_expression "puVar8 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" * (cast_expression "(undefined4 *)(puVar8 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + -0xf0)" ( (binary_expression "puVar8 + -0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002ce58;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 * IDENT) ;) (declaration TYPE (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 * IDENT) ;) (declaration TYPE (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 * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) (do_statement do (compound_statement { (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 *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) ))))) ;) }))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = 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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 = (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 ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < 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 = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 *)) ) LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) - LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + 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 ( (binary_expression (binary_expression IDENT + 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 = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;)) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression 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 *)) ) 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 = (binary_expression IDENT + LIT)) ;) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + LIT) & 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 ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + 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 *)) ) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (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 *)) ) (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (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 *)) ) (parenthesized_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 (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (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) + LIT) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) })) (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * 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) ))))) ;) (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 { (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 = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (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) )))) = (binary_expression IDENT & LIT)) ;) (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 *)) ) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) * LIT)) ))))) ))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 *)) ) (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 = (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 *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (pointer_expression * (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) != 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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return 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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 *))) ) (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) )))) = 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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> 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 = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (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 *))) ) (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) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 * IDENT) )) (argument_list ( LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (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 = LIT) ;) (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 == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( LIT , IDENT , LIT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (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 = (pointer_expression * (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 { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 *)) ) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (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 = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (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 , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( 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 == LIT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;)) }) while (parenthesized_expression ( BOOL )) ;)) })) (expression_statement (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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression 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 ( )))) ;) (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 == LIT) )) (goto_statement goto 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( 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 == LIT) )) (goto_statement goto 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 (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) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement 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 ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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) ))))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (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 ( ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (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) )))) == LIT) )) (compound_statement { (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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) )))) = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 *)) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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) ))))) ;) (expression_statement (assignment_expression IDENT = (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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) ))))) ;) (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) ))))) ;) (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (binary_expression IDENT == (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 = (pointer_expression * (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 ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (binary_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) ))))) + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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) ;) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 * (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) )))) = (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) )))) = (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( ))))) ;) (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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( 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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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 ' character ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) (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 ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 ;))) (goto_statement goto statement_identifier ;) })) (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 ( 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 == LIT) )) (goto_statement goto statement_identifier ;)) (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 ( ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;)) }) (else_clause else (compound_statement { (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 ( ))))) ;) (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 *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (expression_statement (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 *))) ) (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 * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (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) ))))) ;) (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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (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) ))))) ;)) (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (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 IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression 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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 *)) ) 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 ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( IDENT , (binary_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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) })))) (return_statement return IDENT ;) })) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (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 (subscript_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 *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 IDENT + LIT) )))) & LIT) )) != LIT) )) || (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) ))))) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) || (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 ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) )))) ;) (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 ))))) ;) (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 <= IDENT) )) (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) ))))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 ( (binary_expression (binary_expression IDENT + IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT + IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , 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 = (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (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) ))))) ;) (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) ))))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "byte * FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" (type_identifier "byte") (pointer_declarator "* FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" (* "*") (function_declarator "FUN_0002aaa0(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" (identifier "FUN_0002aaa0") (parameter_list "(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  byte *pbVar4;\n  int iVar5;\n  byte *pbVar6;\n  uint uVar7;\n  byte bVar12;\n  undefined1 *puVar8;\n  undefined4 *puVar9;\n  int *piVar10;\n  byte *pbVar11;\n  int *piVar13;\n  byte *pbVar14;\n  uint unaff_s0;\n  undefined1 *puVar15;\n  uint unaff_s1;\n  undefined4 *puVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *unaff_s5;\n  byte *unaff_s6;\n  int iVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  code *pcVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_5f0 [24];\n  undefined *puStack_5d8;\n  int *piStack_5d0;\n  byte *pbStack_5cc;\n  int iStack_5c8;\n  byte *pbStack_5c4;\n  uint uStack_5c0;\n  int *piStack_5bc;\n  int iStack_5b8;\n  byte *pbStack_5b4;\n  uint uStack_5b0;\n  uint uStack_5ac;\n  byte bStack_575;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = PTR_LAB_00049218;\n  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;\n  iVar19 = *param_1;\n  pbVar4 = param_3;\n  pbVar27 = param_2;\n  if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }\n  pbVar6 = (byte *)0x0;\n  if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }\nLAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puStack_5d8 = puVar22 + 0x25b40;\n  puVar21 = auStack_5f0;\n  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);\n  uStack_5c0 = (uint)bStack_575;\n  pbVar27 = param_2 + 1;\n  iStack_5b8 = 0;\n  pbStack_5b4 = (byte *)*puVar16;\n  pbVar14 = param_2;\n  pbVar6 = pbVar4;\n  pbStack_5c4 = param_4;\n  uStack_5b0 = unaff_s0;\n  uStack_5ac = unaff_s1;\n  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);\n  iVar19 = (int)(char)param_2[1];\n  puVar22 = puStack_5d8;\n  if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }\nLAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);\n  if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }\n  pcVar30 = FUN_0002bd90;\n  pbVar18 = pbStack_5b4;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x25450;\n  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_5f0;\n  *(byte **)(puVar21 + -0x1c) = param_3;\n  *(code **)(puVar21 + -0x160) = pcVar24;\n  *(code **)(puVar21 + -4) = pcVar30;\n  *(byte **)(puVar21 + -0xc) = pbVar27;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(int **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = pbVar4;\n  *(undefined4 **)(puVar21 + -0x20) = puVar16;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar9;\n  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;\n  pbVar20 = *(byte **)(pcVar23 + 0x1d488);\n  pbVar27 = pbVar6;\n  pbVar28 = pbVar14;\n  if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  pbVar11 = (byte *)0x0;\n  if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);\n  if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }\n  pcVar23 = *(code **)(pcVar24 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar23)();\n  puVar8 = puVar21 + -0x1e0;\n  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar10 = *(int **)(pcVar23 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar28;\n  *(byte **)(puVar21 + -0x198) = pbVar17;\n  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(int **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = pbVar4;\n  *(byte **)(puVar21 + -0x194) = pbVar6;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar3;\n  *(byte **)(puVar21 + -0x1b8) = pbVar14;\n  *(int *)(puVar21 + -0x1a4) = *piVar10;\n  iVar3 = (*pcVar24)();\n  iVar19 = *(int *)(puVar21 + -0x1c8);\n  if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }\n  iVar19 = *(int *)(puVar21 + -0x1a4);\n  pcVar23 = *(code **)(iVar3 + -0x7c10);\n  if (iVar19 == *piVar10) {\n    return pbVar18;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar23)();\n  pcVar24 = pcVar23 + 0x244c0;\n  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);\n  *(undefined4 **)(puVar8 + -0xf4) = puVar16;\n  *(code **)(puVar8 + -0x110) = pcVar24;\n  *(code **)(puVar8 + -4) = pcVar30;\n  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar8 + -0xc) = pbVar20;\n  *(byte **)(puVar8 + -0x10) = unaff_s6;\n  *(int **)(puVar8 + -0x14) = unaff_s5;\n  *(byte **)(puVar8 + -0x18) = pbVar4;\n  *(byte **)(puVar8 + -0x1c) = pbVar6;\n  *(byte **)(puVar8 + -0x20) = pbVar27;\n  *(int **)(puVar8 + -0x24) = piVar10;\n  *(byte **)(puVar8 + -0x28) = pbVar18;\n  *(byte **)(puVar8 + 4) = pbVar14;\n  *(int *)(puVar8 + -0x100) = iVar19;\n  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;\n  if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);\nLAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);\n  if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }\n  return *(byte **)(puVar8 + -0x108);\ncode_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);\n  if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);\n  *(undefined4 *)(puVar8 + -0x118) = 0x100;\n  pbVar6 = pbVar4;\n  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (iVar19 != 0) goto LAB_0002cf10;\n  pcVar23 = *(code **)(iVar3 + -0x7d38);\n  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;\n  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);\n  iVar3 = *(int *)(puVar8 + -0x110);\n  if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }\n  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);\n  iVar25 = *(int *)(puVar8 + -0x110);\n  iVar29 = *(int *)(puVar8 + -0xd8);\n  *(int *)(puVar8 + -0xe0) = iVar3 + -1;\n  *(undefined1 *)(iVar3 + -1) = 0x2f;\n  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);\n  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);\n  goto LAB_0002ce58;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "undefined1 *puVar8;" (type_identifier "undefined1") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint unaff_s0;" (type_identifier "uint") (identifier "unaff_s0") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "undefined1 *puVar26;" (type_identifier "undefined1") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "byte *pbVar27;" (type_identifier "byte") (pointer_declarator "*pbVar27" (* "*") (identifier "pbVar27")) (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "code *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "undefined4 uVar31;" (type_identifier "undefined4") (identifier "uVar31") (; ";")) (declaration "undefined1 auStack_5f0 [24];" (type_identifier "undefined1") (array_declarator "auStack_5f0 [24]" (identifier "auStack_5f0") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined *puStack_5d8;" (type_identifier "undefined") (pointer_declarator "*puStack_5d8" (* "*") (identifier "puStack_5d8")) (; ";")) (declaration "int *piStack_5d0;" (primitive_type "int") (pointer_declarator "*piStack_5d0" (* "*") (identifier "piStack_5d0")) (; ";")) (declaration "byte *pbStack_5cc;" (type_identifier "byte") (pointer_declarator "*pbStack_5cc" (* "*") (identifier "pbStack_5cc")) (; ";")) (declaration "int iStack_5c8;" (primitive_type "int") (identifier "iStack_5c8") (; ";")) (declaration "byte *pbStack_5c4;" (type_identifier "byte") (pointer_declarator "*pbStack_5c4" (* "*") (identifier "pbStack_5c4")) (; ";")) (declaration "uint uStack_5c0;" (type_identifier "uint") (identifier "uStack_5c0") (; ";")) (declaration "int *piStack_5bc;" (primitive_type "int") (pointer_declarator "*piStack_5bc" (* "*") (identifier "piStack_5bc")) (; ";")) (declaration "int iStack_5b8;" (primitive_type "int") (identifier "iStack_5b8") (; ";")) (declaration "byte *pbStack_5b4;" (type_identifier "byte") (pointer_declarator "*pbStack_5b4" (* "*") (identifier "pbStack_5b4")) (; ";")) (declaration "uint uStack_5b0;" (type_identifier "uint") (identifier "uStack_5b0") (; ";")) (declaration "uint uStack_5ac;" (type_identifier "uint") (identifier "uStack_5ac") (; ";")) (declaration "byte bStack_575;" (type_identifier "byte") (identifier "bStack_575") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000495fc")) (; ";")) (expression_statement "puVar22 = PTR_LAB_00049218;" (assignment_expression "puVar22 = PTR_LAB_00049218" (identifier "puVar22") (= "=") (identifier "PTR_LAB_00049218")) (; ";")) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000495fc;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000495fc" (identifier "iVar3") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000495fc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000495fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000495fc")))) (; ";")) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" (identifier "iVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pbVar4 = param_3;" (assignment_expression "pbVar4 = param_3" (identifier "pbVar4") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar27 = param_2;" (assignment_expression "pbVar27 = param_2" (identifier "pbVar27") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = param_1 + 1;\n    unaff_s1 = param_5 & 2;\n    unaff_s0 = param_5 & 0x10;\n    unaff_s6 = param_4;\n    do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = param_1 + 1;" (assignment_expression "unaff_s5 = param_1 + 1" (identifier "unaff_s5") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s1 = param_5 & 2;" (assignment_expression "unaff_s1 = param_5 & 2" (identifier "unaff_s1") (= "=") (binary_expression "param_5 & 2" (identifier "param_5") (& "&") (number_literal "2"))) (; ";")) (expression_statement "unaff_s0 = param_5 & 0x10;" (assignment_expression "unaff_s0 = param_5 & 0x10" (identifier "unaff_s0") (= "=") (binary_expression "param_5 & 0x10" (identifier "param_5") (& "&") (number_literal "0x10"))) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    } while (iVar19 != 0);" (do "do") (compound_statement "{\n      if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }\n      if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }\n      if (param_3 == pbVar27) goto LAB_0002ad44;\n      iVar5 = *(int *)pbVar27;\n      if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }\n      pbVar6 = (byte *)0x1;\n      if (iVar5 != iVar19) goto LAB_0002ad48;\n      unaff_s6 = (byte *)0x0;\n      iVar19 = *unaff_s5;\n      pbVar27 = pbVar27 + 4;\n      unaff_s5 = unaff_s5 + 1;\n    }" ({ "{") (if_statement "if (unaff_s0 != 0) {\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" (if "if") (parenthesized_expression "(unaff_s0 != 0)" (( "(") (binary_expression "unaff_s0 != 0" (identifier "unaff_s0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);\n      }" ({ "{") (expression_statement "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);" (assignment_expression "iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19)" (identifier "iVar19") (= "=") (call_expression "(*(code *)PTR_towlower_000495f0)(iVar19)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" (( "(") (pointer_expression "*(code *)PTR_towlower_000495f0" (* "*") (cast_expression "(code *)PTR_towlower_000495f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_towlower_000495f0"))) () ")")) (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";")) (} "}"))) (if_statement "if (iVar19 - 0x21U < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" (if "if") (parenthesized_expression "(iVar19 - 0x21U < 0x3c)" (( "(") (binary_expression "iVar19 - 0x21U < 0x3c" (binary_expression "iVar19 - 0x21U" (identifier "iVar19") (- "-") (number_literal "0x21U")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();\n        return pbVar4;\n      }" ({ "{") (expression_statement "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (* "*") (cast_expression "(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)" (( "(") (binary_expression "puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00" (binary_expression "puVar22 + (iVar19 - 0x21U) * 4" (identifier "puVar22") (+ "+") (binary_expression "(iVar19 - 0x21U) * 4" (parenthesized_expression "(iVar19 - 0x21U)" (( "(") (binary_expression "iVar19 - 0x21U" (identifier "iVar19") (- "-") (number_literal "0x21U")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x7b00")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (if_statement "if (param_3 == pbVar27) goto LAB_0002ad44;" (if "if") (parenthesized_expression "(param_3 == pbVar27)" (( "(") (binary_expression "param_3 == pbVar27" (identifier "param_3") (== "==") (identifier "pbVar27")) () ")")) (goto_statement "goto LAB_0002ad44;" (goto "goto") (statement_identifier "LAB_0002ad44") (; ";"))) (expression_statement "iVar5 = *(int *)pbVar27;" (assignment_expression "iVar5 = *(int *)pbVar27" (identifier "iVar5") (= "=") (pointer_expression "*(int *)pbVar27" (* "*") (cast_expression "(int *)pbVar27" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar27")))) (; ";")) (if_statement "if (unaff_s0 != 0) {\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" (if "if") (parenthesized_expression "(unaff_s0 != 0)" (( "(") (binary_expression "unaff_s0 != 0" (identifier "unaff_s0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);\n      }" ({ "{") (expression_statement "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);" (assignment_expression "iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_towlower_000495f0)(iVar5)" (parenthesized_expression "(*(code *)PTR_towlower_000495f0)" (( "(") (pointer_expression "*(code *)PTR_towlower_000495f0" (* "*") (cast_expression "(code *)PTR_towlower_000495f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_towlower_000495f0"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (} "}"))) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" (identifier "pbVar6") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (iVar5 != iVar19) goto LAB_0002ad48;" (if "if") (parenthesized_expression "(iVar5 != iVar19)" (( "(") (binary_expression "iVar5 != iVar19" (identifier "iVar5") (!= "!=") (identifier "iVar19")) () ")")) (goto_statement "goto LAB_0002ad48;" (goto "goto") (statement_identifier "LAB_0002ad48") (; ";"))) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" (identifier "unaff_s6") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar19 = *unaff_s5;" (assignment_expression "iVar19 = *unaff_s5" (identifier "iVar19") (= "=") (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5"))) (; ";")) (expression_statement "pbVar27 = pbVar27 + 4;" (assignment_expression "pbVar27 = pbVar27 + 4" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + 4" (identifier "pbVar27") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" (identifier "unaff_s5") (= "=") (binary_expression "unaff_s5 + 1" (identifier "unaff_s5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar6 = (byte *)0x0;" (assignment_expression "pbVar6 = (byte *)0x0" (identifier "pbVar6") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pbVar27 != param_3) {\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar27 != param_3)" (( "(") (binary_expression "pbVar27 != param_3" (identifier "pbVar27") (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n    if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }\n  }" ({ "{") (if_statement "if ((param_5 & 8) == 0) {\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }\n    else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" (if "if") (parenthesized_expression "((param_5 & 8) == 0)" (( "(") (binary_expression "(param_5 & 8) == 0" (parenthesized_expression "(param_5 & 8)" (( "(") (binary_expression "param_5 & 8" (identifier "param_5") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002ad44:\n      pbVar6 = (byte *)0x1;\n    }" ({ "{") (labeled_statement "LAB_0002ad44:\n      pbVar6 = (byte *)0x1;" (statement_identifier "LAB_0002ad44") (: ":") (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" (identifier "pbVar6") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (} "}")) (else_clause "else {\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" (else "else") (compound_statement "{\n      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);\n    }" ({ "{") (expression_statement "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);" (assignment_expression "pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(uint)(*(int *)pbVar27 != 0x2f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*(int *)pbVar27 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)pbVar27 != 0x2f)" (( "(") (binary_expression "*(int *)pbVar27 != 0x2f" (pointer_expression "*(int *)pbVar27" (* "*") (cast_expression "(int *)pbVar27" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar27"))) (!= "!=") (number_literal "0x2f")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0002ad48:\n  if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" (statement_identifier "LAB_0002ad48") (: ":") (if_statement "if (iVar3 == *(int *)puVar2) {\n    return pbVar6;\n  }" (if "if") (parenthesized_expression "(iVar3 == *(int *)puVar2)" (( "(") (binary_expression "iVar3 == *(int *)puVar2" (identifier "iVar3") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return pbVar6;\n  }" ({ "{") (return_statement "return pbVar6;" (return "return") (identifier "pbVar6") (; ";")) (} "}")))) (expression_statement "puVar22 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar22 = PTR___stack_chk_fail_000495d0" (identifier "puVar22") (= "=") (identifier "PTR___stack_chk_fail_000495d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000495d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000495d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000495d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000495d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000495d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000495d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_5d8 = puVar22 + 0x25b40;" (assignment_expression "puStack_5d8 = puVar22 + 0x25b40" (identifier "puStack_5d8") (= "=") (binary_expression "puVar22 + 0x25b40" (identifier "puVar22") (+ "+") (number_literal "0x25b40"))) (; ";")) (expression_statement "puVar21 = auStack_5f0;" (assignment_expression "puVar21 = auStack_5f0" (identifier "puVar21") (= "=") (identifier "auStack_5f0")) (; ";")) (expression_statement "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);" (assignment_expression "puVar16 = *(undefined4 **)(puVar22 + 0x1df5c)" (identifier "puVar16") (= "=") (pointer_expression "*(undefined4 **)(puVar22 + 0x1df5c)" (* "*") (cast_expression "(undefined4 **)(puVar22 + 0x1df5c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x1df5c)" (( "(") (binary_expression "puVar22 + 0x1df5c" (identifier "puVar22") (+ "+") (number_literal "0x1df5c")) () ")"))))) (; ";")) (expression_statement "uStack_5c0 = (uint)bStack_575;" (assignment_expression "uStack_5c0 = (uint)bStack_575" (identifier "uStack_5c0") (= "=") (cast_expression "(uint)bStack_575" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_575"))) (; ";")) (expression_statement "pbVar27 = param_2 + 1;" (assignment_expression "pbVar27 = param_2 + 1" (identifier "pbVar27") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_5b8 = 0;" (assignment_expression "iStack_5b8 = 0" (identifier "iStack_5b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbStack_5b4 = (byte *)*puVar16;" (assignment_expression "pbStack_5b4 = (byte *)*puVar16" (identifier "pbStack_5b4") (= "=") (cast_expression "(byte *)*puVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) (; ";")) (expression_statement "pbVar14 = param_2;" (assignment_expression "pbVar14 = param_2" (identifier "pbVar14") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" (identifier "pbVar6") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "pbStack_5c4 = param_4;" (assignment_expression "pbStack_5c4 = param_4" (identifier "pbStack_5c4") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uStack_5b0 = unaff_s0;" (assignment_expression "uStack_5b0 = unaff_s0" (identifier "uStack_5b0") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uStack_5ac = unaff_s1;" (assignment_expression "uStack_5ac = unaff_s1" (identifier "uStack_5ac") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);" (assignment_expression "pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" (identifier "pbStack_5cc") (= "=") (cast_expression "(byte *)(**(code **)(puVar22 + 0x1de9c))(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + 0x1de9c))(param_2)" (parenthesized_expression "(**(code **)(puVar22 + 0x1de9c))" (( "(") (pointer_expression "**(code **)(puVar22 + 0x1de9c)" (* "*") (pointer_expression "*(code **)(puVar22 + 0x1de9c)" (* "*") (cast_expression "(code **)(puVar22 + 0x1de9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x1de9c)" (( "(") (binary_expression "puVar22 + 0x1de9c" (identifier "puVar22") (+ "+") (number_literal "0x1de9c")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "iVar19 = (int)(char)param_2[1];" (assignment_expression "iVar19 = (int)(char)param_2[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)param_2[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)param_2[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" (identifier "puVar22") (= "=") (identifier "puStack_5d8")) (; ";")) (if_statement "if (iVar19 != 0) {\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = (int *)0x0;\n    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);\n    piStack_5bc = &iStack_5b8;\n    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);\n    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;\n    puVar8 = auStack_5f0;\n    unaff_s6 = pbVar27;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = (int *)0x0;" (assignment_expression "unaff_s5 = (int *)0x0" (identifier "unaff_s5") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_3 = *(byte **)(puStack_5d8 + -0x7fd8);" (assignment_expression "param_3 = *(byte **)(puStack_5d8 + -0x7fd8)" (identifier "param_3") (= "=") (pointer_expression "*(byte **)(puStack_5d8 + -0x7fd8)" (* "*") (cast_expression "(byte **)(puStack_5d8 + -0x7fd8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_5d8 + -0x7fd8)" (( "(") (binary_expression "puStack_5d8 + -0x7fd8" (identifier "puStack_5d8") (+ "+") (number_literal "-0x7fd8")) () ")"))))) (; ";")) (expression_statement "piStack_5bc = &iStack_5b8;" (assignment_expression "piStack_5bc = &iStack_5b8" (identifier "piStack_5bc") (= "=") (pointer_expression "&iStack_5b8" (& "&") (identifier "iStack_5b8"))) (; ";")) (expression_statement "unaff_s1 = (uint)(iVar3 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(iVar3 - 0x3fU < 2)" (identifier "unaff_s1") (= "=") (call_expression "(uint)(iVar3 - 0x3fU < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 - 0x3fU < 2)" (( "(") (binary_expression "iVar3 - 0x3fU < 2" (binary_expression "iVar3 - 0x3fU" (identifier "iVar3") (- "-") (number_literal "0x3fU")) (< "<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;" (assignment_expression "iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c" (identifier "iStack_5c8") (= "=") (binary_expression "*(int *)(puStack_5d8 + -0x7fc8) + 0x671c" (pointer_expression "*(int *)(puStack_5d8 + -0x7fc8)" (* "*") (cast_expression "(int *)(puStack_5d8 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_5d8 + -0x7fc8)" (( "(") (binary_expression "puStack_5d8 + -0x7fc8" (identifier "puStack_5d8") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x671c"))) (; ";")) (expression_statement "puVar8 = auStack_5f0;" (assignment_expression "puVar8 = auStack_5f0" (identifier "puVar8") (= "=") (identifier "auStack_5f0")) (; ";")) (expression_statement "unaff_s6 = pbVar27;" (assignment_expression "unaff_s6 = pbVar27" (identifier "unaff_s6") (= "=") (identifier "pbVar27")) (; ";")) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" (statement_identifier "LAB_0002b75c") (: ":") (do_statement "do {\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    } while (iVar19 != 0);" (do "do") (compound_statement "{\n      puVar21 = puVar8;\n      if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }\n      puVar8 = puVar21;\n    }" ({ "{") (expression_statement "puVar21 = puVar8;" (assignment_expression "puVar21 = puVar8" (identifier "puVar21") (= "=") (identifier "puVar8")) (; ";")) (if_statement "if (iVar19 == 0x5b) {\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" (if "if") (parenthesized_expression "(iVar19 == 0x5b)" (( "(") (binary_expression "iVar19 == 0x5b" (identifier "iVar19") (== "==") (number_literal "0x5b")) () ")")) (compound_statement "{\n        if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }\n        bVar12 = pbVar27[1];\n        pbVar18 = pbVar27 + 1;\n        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }\n        if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar14 = (byte *)0x5d;\n        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }\n        iVar19 = (int)(char)pbVar18[1];\n      }" ({ "{") (if_statement "if (*(int *)(param_3 + -0x5830) == 0) {\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_3 + -0x5830) == 0)" (( "(") (binary_expression "*(int *)(param_3 + -0x5830) == 0" (pointer_expression "*(int *)(param_3 + -0x5830)" (* "*") (cast_expression "(int *)(param_3 + -0x5830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + -0x5830)" (( "(") (binary_expression "param_3 + -0x5830" (identifier "param_3") (+ "+") (number_literal "-0x5830")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);\n          uVar31 = 0xffffffff;\n          if (iVar19 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(param_3 + -0x5830) = uVar31;\n          puVar22 = puStack_5d8;\n        }" ({ "{") (expression_statement "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);" (assignment_expression "iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar22 + -0x7c74))(iStack_5c8)" (parenthesized_expression "(**(code **)(puVar22 + -0x7c74))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7c74)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7c74)" (* "*") (cast_expression "(code **)(puVar22 + -0x7c74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7c74)" (( "(") (binary_expression "puVar22 + -0x7c74" (identifier "puVar22") (+ "+") (number_literal "-0x7c74")) () ")"))))) () ")")) (argument_list "(iStack_5c8)" (( "(") (identifier "iStack_5c8") () ")")))) (; ";")) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" (identifier "uVar31") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar19 != 0) {\n            uVar31 = 1;\n          }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar31 = 1;\n          }" ({ "{") (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" (identifier "uVar31") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_3 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(param_3 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(param_3 + -0x5830)" (* "*") (cast_expression "(undefined4 *)(param_3 + -0x5830)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + -0x5830)" (( "(") (binary_expression "param_3 + -0x5830" (identifier "param_3") (+ "+") (number_literal "-0x5830")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" (identifier "puVar22") (= "=") (identifier "puStack_5d8")) (; ";")) (} "}"))) (expression_statement "bVar12 = pbVar27[1];" (assignment_expression "bVar12 = pbVar27[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar18 = pbVar27 + 1;" (assignment_expression "pbVar18 = pbVar27 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar27 + 1" (identifier "pbVar27") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" (if "if") (parenthesized_expression "((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))))" (( "(") (binary_expression "(bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" (parenthesized_expression "(bVar12 == 0x21)" (( "(") (binary_expression "bVar12 == 0x21" (identifier "bVar12") (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))" (( "(") (parenthesized_expression "(*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e))" (( "(") (binary_expression "*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)" (binary_expression "*(int *)(param_3 + -0x5830) < 0" (pointer_expression "*(int *)(param_3 + -0x5830)" (* "*") (cast_expression "(int *)(param_3 + -0x5830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + -0x5830)" (( "(") (binary_expression "param_3 + -0x5830" (identifier "param_3") (+ "+") (number_literal "-0x5830")) () ")")))) (< "<") (number_literal "0")) (&& "&&") (parenthesized_expression "(bVar12 == 0x5e)" (( "(") (binary_expression "bVar12 == 0x5e" (identifier "bVar12") (== "==") (number_literal "0x5e")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          bVar12 = pbVar27[2];\n          pbVar18 = pbVar27 + 2;\n        }" ({ "{") (expression_statement "bVar12 = pbVar27[2];" (assignment_expression "bVar12 = pbVar27[2]" (identifier "bVar12") (= "=") (subscript_expression "pbVar27[2]" (identifier "pbVar27") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pbVar18 = pbVar27 + 2;" (assignment_expression "pbVar18 = pbVar27 + 2" (identifier "pbVar18") (= "=") (binary_expression "pbVar27 + 2" (identifier "pbVar27") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (bVar12 == 0x5d) {\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" (if "if") (parenthesized_expression "(bVar12 == 0x5d)" (( "(") (binary_expression "bVar12 == 0x5d" (identifier "bVar12") (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          bVar12 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" ({ "{") (expression_statement "bVar12 = pbVar18[1];" (assignment_expression "bVar12 = pbVar18[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar14 = (byte *)0x5d;" (assignment_expression "pbVar14 = (byte *)0x5d" (identifier "pbVar14") (= "=") (cast_expression "(byte *)0x5d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5d"))) (; ";")) (while_statement "while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" (while "while") (parenthesized_expression "(pbVar27 = pbVar18 + 1, bVar12 != 0x5d)" (( "(") (comma_expression "pbVar27 = pbVar18 + 1, bVar12 != 0x5d" (assignment_expression "pbVar27 = pbVar18 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (, ",") (binary_expression "bVar12 != 0x5d" (identifier "bVar12") (!= "!=") (number_literal "0x5d"))) () ")")) (compound_statement "{\n          if (bVar12 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar27;\n          bVar12 = *pbVar27;\n        }" ({ "{") (if_statement "if (bVar12 == 0) goto LAB_0002b7b4;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002b7b4;" (goto "goto") (statement_identifier "LAB_0002b7b4") (; ";"))) (expression_statement "pbVar18 = pbVar27;" (assignment_expression "pbVar18 = pbVar27" (identifier "pbVar18") (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "bVar12 = *pbVar27;" (assignment_expression "bVar12 = *pbVar27" (identifier "bVar12") (= "=") (pointer_expression "*pbVar27" (* "*") (identifier "pbVar27"))) (; ";")) (} "}"))) (expression_statement "iVar19 = (int)(char)pbVar18[1];" (assignment_expression "iVar19 = (int)(char)pbVar18[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)pbVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar18[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" (else "else") (compound_statement "{\n        pbVar14 = &DAT_c0000601;\n        uVar7 = iVar19 - 0x21U & 0xff;\n        pbVar6 = (byte *)(uint)(uVar7 < 0x20);\n        if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;\n      }" ({ "{") (expression_statement "pbVar14 = &DAT_c0000601;" (assignment_expression "pbVar14 = &DAT_c0000601" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_c0000601" (& "&") (identifier "DAT_c0000601"))) (; ";")) (expression_statement "uVar7 = iVar19 - 0x21U & 0xff;" (assignment_expression "uVar7 = iVar19 - 0x21U & 0xff" (identifier "uVar7") (= "=") (binary_expression "iVar19 - 0x21U & 0xff" (binary_expression "iVar19 - 0x21U" (identifier "iVar19") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "pbVar6 = (byte *)(uint)(uVar7 < 0x20);" (assignment_expression "pbVar6 = (byte *)(uint)(uVar7 < 0x20)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(uint)(uVar7 < 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar7 < 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 < 0x20)" (( "(") (binary_expression "uVar7 < 0x20" (identifier "uVar7") (< "<") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (pbVar6 == (byte *)0x0) {\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" (if "if") (parenthesized_expression "(pbVar6 == (byte *)0x0)" (( "(") (binary_expression "pbVar6 == (byte *)0x0" (identifier "pbVar6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];\n        }" ({ "{") (if_statement "if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" (if "if") (parenthesized_expression "((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0))" (( "(") (binary_expression "(iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)" (parenthesized_expression "(iVar19 == 0x7c)" (( "(") (binary_expression "iVar19 == 0x7c" (identifier "iVar19") (== "==") (number_literal "0x7c")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 == (int *)0x0)" (( "(") (binary_expression "unaff_s5 == (int *)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n            pbVar18 = pbStack_5cc;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar6 = pbVar27 + -(int)unaff_s6;\n            pbVar17 = pbVar27 + 1;\n            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar5;\n            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);\n            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);\n            piVar13 = piStack_5bc;\n            piVar10 = piStack_5d0;\n            puVar22 = puStack_5d8;\n            iVar19 = (int)(char)pbVar27[1];\n            *puVar8 = 0;\n            *piStack_5d0 = 0;\n            piStack_5bc = piVar10;\n            *piVar13 = (int)piVar10;\n            pbVar14 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar27 = pbVar17;\n            puVar21 = puVar21 + iVar5;\n            puVar8 = puVar26;\n            if (iVar19 == 0) break;\n            goto LAB_0002b75c;\n          }" ({ "{") (expression_statement "pbVar18 = pbStack_5cc;" (assignment_expression "pbVar18 = pbStack_5cc" (identifier "pbVar18") (= "=") (identifier "pbStack_5cc")) (; ";")) (if_statement "if (unaff_s1 == 0) {\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" (if "if") (parenthesized_expression "(unaff_s1 == 0)" (( "(") (binary_expression "unaff_s1 == 0" (identifier "unaff_s1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar18 = pbVar27 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "pbVar18 = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbVar18 = pbVar27 + (1 - (int)unaff_s6)" (identifier "pbVar18") (= "=") (binary_expression "pbVar27 + (1 - (int)unaff_s6)" (identifier "pbVar27") (+ "+") (parenthesized_expression "(1 - (int)unaff_s6)" (( "(") (binary_expression "1 - (int)unaff_s6" (number_literal "1") (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;" (if "if") (parenthesized_expression "(0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4)" (( "(") (binary_expression "0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4" (number_literal "0x1f3b") (< "<") (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 + 7)" (( "(") (binary_expression "pbVar18 + 7" (identifier "pbVar18") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar6 = pbVar27 + -(int)unaff_s6;" (assignment_expression "pbVar6 = pbVar27 + -(int)unaff_s6" (identifier "pbVar6") (= "=") (binary_expression "pbVar27 + -(int)unaff_s6" (identifier "pbVar27") (+ "+") (unary_expression "-(int)unaff_s6" (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))))) (; ";")) (expression_statement "pbVar17 = pbVar27 + 1;" (assignment_expression "pbVar17 = pbVar27 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar27 + 1" (identifier "pbVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar5") (= "=") (unary_expression "-(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar18 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar18 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar18 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar18 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 + 7)" (( "(") (binary_expression "pbVar18 + 7" (identifier "pbVar18") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar26 = puVar21 + iVar5;" (assignment_expression "puVar26 = puVar21 + iVar5" (identifier "puVar26") (= "=") (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);" (assignment_expression "piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18)" (identifier "piStack_5d0") (= "=") (cast_expression "(int *)(puVar21 + iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + iVar5 + 0x18)" (( "(") (binary_expression "puVar21 + iVar5 + 0x18" (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);" (assignment_expression "puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7bfc)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7bfc)" (* "*") (cast_expression "(code **)(puVar22 + -0x7bfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7bfc)" (( "(") (binary_expression "puVar22 + -0x7bfc" (identifier "puVar22") (+ "+") (number_literal "-0x7bfc")) () ")"))))) () ")")) (argument_list "(puVar21 + iVar5 + 0x1c)" (( "(") (binary_expression "puVar21 + iVar5 + 0x1c" (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "piVar13 = piStack_5bc;" (assignment_expression "piVar13 = piStack_5bc" (identifier "piVar13") (= "=") (identifier "piStack_5bc")) (; ";")) (expression_statement "piVar10 = piStack_5d0;" (assignment_expression "piVar10 = piStack_5d0" (identifier "piVar10") (= "=") (identifier "piStack_5d0")) (; ";")) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" (identifier "puVar22") (= "=") (identifier "puStack_5d8")) (; ";")) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)pbVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar27[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piStack_5d0 = 0;" (assignment_expression "*piStack_5d0 = 0" (pointer_expression "*piStack_5d0" (* "*") (identifier "piStack_5d0")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_5bc = piVar10;" (assignment_expression "piStack_5bc = piVar10" (identifier "piStack_5bc") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*piVar13 = (int)piVar10;" (assignment_expression "*piVar13 = (int)piVar10" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) (; ";")) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" (identifier "pbVar14") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" (identifier "unaff_s6") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar27 = pbVar17;" (assignment_expression "pbVar27 = pbVar17" (identifier "pbVar27") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "puVar21 = puVar21 + iVar5;" (assignment_expression "puVar21 = puVar21 + iVar5" (identifier "puVar21") (= "=") (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "puVar8 = puVar26;" (assignment_expression "puVar8 = puVar26" (identifier "puVar8") (= "=") (identifier "puVar26")) (; ";")) (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0002b75c;" (goto "goto") (statement_identifier "LAB_0002b75c") (; ";")) (} "}"))) (labeled_statement "LAB_0002b918:\n          iVar19 = (int)(char)pbVar27[1];" (statement_identifier "LAB_0002b918") (: ":") (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)pbVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar27[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]"))))) (; ";"))) (} "}")) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" (else "else") (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }\n          if (iVar19 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }\n          iVar19 = (int)(char)pbVar27[1];\n          unaff_s5 = (int *)((int)unaff_s5 + -1);\n        }" ({ "{") (while_statement "while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" (while "while") (parenthesized_expression "((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0)" (( "(") (binary_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0xc0000601U >> (uVar7 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar7 & 0x1f))" (( "(") (binary_expression "0xc0000601U >> (uVar7 & 0x1f)" (number_literal "0xc0000601U") (>> ">>") (parenthesized_expression "(uVar7 & 0x1f)" (( "(") (binary_expression "uVar7 & 0x1f" (identifier "uVar7") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar19 = (int)(char)pbVar27[1];\n            if (iVar19 != 0x28) goto joined_r0x0002b91c;\n            pbVar6 = (byte *)0x1;\n            unaff_s5 = (int *)((int)unaff_s5 + 1);\n            pbVar27 = pbVar27 + 1;\n            uVar7 = 7;\n          }" ({ "{") (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)pbVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar27[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (iVar19 != 0x28) goto joined_r0x0002b91c;" (if "if") (parenthesized_expression "(iVar19 != 0x28)" (( "(") (binary_expression "iVar19 != 0x28" (identifier "iVar19") (!= "!=") (number_literal "0x28")) () ")")) (goto_statement "goto joined_r0x0002b91c;" (goto "goto") (statement_identifier "joined_r0x0002b91c") (; ";"))) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" (identifier "pbVar6") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + 1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + 1)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)((int)unaff_s5 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s5 + 1)" (( "(") (binary_expression "(int)unaff_s5 + 1" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + 1" (identifier "pbVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = 7;" (assignment_expression "uVar7 = 7" (identifier "uVar7") (= "=") (number_literal "7")) (; ";")) (} "}"))) (if_statement "if (iVar19 != 0x29) goto LAB_0002b918;" (if "if") (parenthesized_expression "(iVar19 != 0x29)" (( "(") (binary_expression "iVar19 != 0x29" (identifier "iVar19") (!= "!=") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_0002b918;" (goto "goto") (statement_identifier "LAB_0002b918") (; ";"))) (if_statement "if (unaff_s5 == (int *)0x0) {\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" (if "if") (parenthesized_expression "(unaff_s5 == (int *)0x0)" (( "(") (binary_expression "unaff_s5 == (int *)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }\n            break;\n          }" ({ "{") (if_statement "if (1 < iVar3 - 0x3fU) {\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" (if "if") (parenthesized_expression "(1 < iVar3 - 0x3fU)" (( "(") (binary_expression "1 < iVar3 - 0x3fU" (number_literal "1") (< "<") (binary_expression "iVar3 - 0x3fU" (identifier "iVar3") (- "-") (number_literal "0x3fU"))) () ")")) (compound_statement "{\n              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);" (assignment_expression "pbStack_5cc = pbVar27 + (1 - (int)unaff_s6)" (identifier "pbStack_5cc") (= "=") (binary_expression "pbVar27 + (1 - (int)unaff_s6)" (identifier "pbVar27") (+ "+") (parenthesized_expression "(1 - (int)unaff_s6)" (( "(") (binary_expression "1 - (int)unaff_s6" (number_literal "1") (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" (if "if") (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c)" (( "(") (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbStack_5cc + 7)" (( "(") (binary_expression "pbStack_5cc + 7" (identifier "pbStack_5cc") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4")) (< "<") (number_literal "0x1f3c")) () ")")) (compound_statement "{\n              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);\n              piVar10 = piStack_5bc;\n              puVar22 = puStack_5d8;\n              *puVar8 = 0;\n              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;\n              *piVar10 = (int)(puVar21 + iVar19 + 0x18);\n              if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n              if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }\n                    \n                    \n              pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();\n              return pbVar4;\n            }" ({ "{") (expression_statement "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar19") (= "=") (unary_expression "-(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbStack_5cc + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbStack_5cc + 7) & 0xfffffffc" (call_expression "(uint)(pbStack_5cc + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbStack_5cc + 7)" (( "(") (binary_expression "pbStack_5cc + 7" (identifier "pbStack_5cc") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);" (assignment_expression "puVar8 = (undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (identifier "puVar8") (= "=") (cast_expression "(undefined1 *)\n                       (**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + -0x7bfc))\n                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (parenthesized_expression "(**(code **)(puVar22 + -0x7bfc))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7bfc)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7bfc)" (* "*") (cast_expression "(code **)(puVar22 + -0x7bfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7bfc)" (( "(") (binary_expression "puVar22 + -0x7bfc" (identifier "puVar22") (+ "+") (number_literal "-0x7bfc")) () ")"))))) () ")")) (argument_list "(puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6)" (( "(") (binary_expression "puVar21 + iVar19 + 0x1c" (binary_expression "puVar21 + iVar19" (identifier "puVar21") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "unaff_s6") (, ",") (binary_expression "(int)pbVar27 - (int)unaff_s6" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")"))))) (; ";")) (expression_statement "piVar10 = piStack_5bc;" (assignment_expression "piVar10 = piStack_5bc" (identifier "piVar10") (= "=") (identifier "piStack_5bc")) (; ";")) (expression_statement "puVar22 = puStack_5d8;" (assignment_expression "puVar22 = puStack_5d8" (identifier "puVar22") (= "=") (identifier "puStack_5d8")) (; ";")) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar19 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + iVar19 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + iVar19 + 0x18)" (( "(") (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" (identifier "puVar21") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar10 = (int)(puVar21 + iVar19 + 0x18);" (assignment_expression "*piVar10 = (int)(puVar21 + iVar19 + 0x18)" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (cast_expression "(int)(puVar21 + iVar19 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar21 + iVar19 + 0x18)" (( "(") (binary_expression "puVar21 + iVar19 + 0x18" (binary_expression "puVar21 + iVar19" (identifier "puVar21") (+ "+") (identifier "iVar19")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (iStack_5b8 == 0) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" (if "if") (parenthesized_expression "(iStack_5b8 == 0)" (( "(") (binary_expression "iStack_5b8 == 0" (identifier "iStack_5b8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" ({ "{") (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7d80)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7d80)" (* "*") (cast_expression "(code **)(puVar22 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7d80)" (( "(") (binary_expression "puVar22 + -0x7d80" (identifier "puVar22") (+ "+") (number_literal "-0x7d80")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a14,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a14" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a14")) (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x454") (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (if_statement "if (pbVar27[-1] != 0x29) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" (if "if") (parenthesized_expression "(pbVar27[-1] != 0x29)" (( "(") (binary_expression "pbVar27[-1] != 0x29" (subscript_expression "pbVar27[-1]" (identifier "pbVar27") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" ({ "{") (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7d80)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7d80)" (* "*") (cast_expression "(code **)(puVar22 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7d80)" (( "(") (binary_expression "puVar22 + -0x7d80" (identifier "puVar22") (+ "+") (number_literal "-0x7d80")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a24,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a24" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a24")) (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x455") (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (if_statement "if (0x1f < iVar3 - 0x21U) {\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" (if "if") (parenthesized_expression "(0x1f < iVar3 - 0x21U)" (( "(") (binary_expression "0x1f < iVar3 - 0x21U" (number_literal "0x1f") (< "<") (binary_expression "iVar3 - 0x21U" (identifier "iVar3") (- "-") (number_literal "0x21U"))) () ")")) (compound_statement "{\n                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);\n                return pbVar4;\n              }" ({ "{") (expression_statement "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);" (assignment_expression "pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar22 + -0x7d80))\n                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (parenthesized_expression "(**(code **)(puVar22 + -0x7d80))" (( "(") (pointer_expression "**(code **)(puVar22 + -0x7d80)" (* "*") (pointer_expression "*(code **)(puVar22 + -0x7d80)" (* "*") (cast_expression "(code **)(puVar22 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7d80)" (( "(") (binary_expression "puVar22 + -0x7d80" (identifier "puVar22") (+ "+") (number_literal "-0x7d80")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar22 + -0x7fc8) + 0x7a38,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,\n                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60)" (( "(") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a38" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a38")) (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7a00" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x4ad") (, ",") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7d60" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (expression_statement "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))()" (parenthesized_expression "(*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)))" (( "(") (pointer_expression "*(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" (* "*") (cast_expression "(code *)(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4))" (( "(") (binary_expression "puVar22 +\n                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" (identifier "puVar22") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4)" (( "(") (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +\n                                                 (iVar3 - 0x21U) * 4" (binary_expression "*(int *)(puVar22 + -0x7fc8) + 0x7bf0" (pointer_expression "*(int *)(puVar22 + -0x7fc8)" (* "*") (cast_expression "(int *)(puVar22 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x7fc8)" (( "(") (binary_expression "puVar22 + -0x7fc8" (identifier "puVar22") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7bf0")) (+ "+") (binary_expression "(iVar3 - 0x21U) * 4" (parenthesized_expression "(iVar3 - 0x21U)" (( "(") (binary_expression "iVar3 - 0x21U" (identifier "iVar3") (- "-") (number_literal "0x21U")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar19 = (int)(char)pbVar27[1];" (assignment_expression "iVar19 = (int)(char)pbVar27[1]" (identifier "iVar19") (= "=") (cast_expression "(int)(char)pbVar27[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar27[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "unaff_s5 = (int *)((int)unaff_s5 + -1);" (assignment_expression "unaff_s5 = (int *)((int)unaff_s5 + -1)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)((int)unaff_s5 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s5 + -1)" (( "(") (binary_expression "(int)unaff_s5 + -1" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (} "}")))) (labeled_statement "joined_r0x0002b91c:\n        pbVar27 = pbVar27 + 1;" (statement_identifier "joined_r0x0002b91c") (: ":") (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + 1" (identifier "pbVar27") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (expression_statement "puVar8 = puVar21;" (assignment_expression "puVar8 = puVar21" (identifier "puVar8") (= "=") (identifier "puVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (} "}"))) (labeled_statement "LAB_0002b7b4:\n  pcVar23 = *(code **)(puVar22 + -0x7c10);" (statement_identifier "LAB_0002b7b4") (: ":") (expression_statement "pcVar23 = *(code **)(puVar22 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(puVar22 + -0x7c10)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar22 + -0x7c10)" (* "*") (cast_expression "(code **)(puVar22 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x7c10)" (( "(") (binary_expression "puVar22 + -0x7c10" (identifier "puVar22") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";"))) (if_statement "if (pbStack_5b4 == (byte *)*puVar16) {\n    return (byte *)0xffffffff;\n  }" (if "if") (parenthesized_expression "(pbStack_5b4 == (byte *)*puVar16)" (( "(") (binary_expression "pbStack_5b4 == (byte *)*puVar16" (identifier "pbStack_5b4") (== "==") (cast_expression "(byte *)*puVar16" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) () ")")) (compound_statement "{\n    return (byte *)0xffffffff;\n  }" ({ "{") (return_statement "return (byte *)0xffffffff;" (return "return") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff")) (; ";")) (} "}"))) (expression_statement "pcVar30 = FUN_0002bd90;" (assignment_expression "pcVar30 = FUN_0002bd90" (identifier "pcVar30") (= "=") (identifier "FUN_0002bd90")) (; ";")) (expression_statement "pbVar18 = pbStack_5b4;" (assignment_expression "pbVar18 = pbStack_5b4" (identifier "pbVar18") (= "=") (identifier "pbStack_5b4")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar24 = pcVar23 + 0x25450;" (assignment_expression "pcVar24 = pcVar23 + 0x25450" (identifier "pcVar24") (= "=") (binary_expression "pcVar23 + 0x25450" (identifier "pcVar23") (+ "+") (number_literal "0x25450"))) (; ";")) (expression_statement "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);" (assignment_expression "puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined4 **)(pcVar23 + 0x1d86c)" (* "*") (cast_expression "(undefined4 **)(pcVar23 + 0x1d86c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1d86c)" (( "(") (binary_expression "pcVar23 + 0x1d86c" (identifier "pcVar23") (+ "+") (number_literal "0x1d86c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_5f0;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_5f0" (pointer_expression "*(undefined1 **)(puVar21 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -8)" (( "(") (binary_expression "puVar21 + -8" (identifier "puVar21") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_5f0")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1c) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x1c) = param_3" (pointer_expression "*(byte **)(puVar21 + -0x1c)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(code **)(puVar21 + -0x160) = pcVar24;" (assignment_expression "*(code **)(puVar21 + -0x160) = pcVar24" (pointer_expression "*(code **)(puVar21 + -0x160)" (* "*") (cast_expression "(code **)(puVar21 + -0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")")))) (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "*(code **)(puVar21 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar30" (pointer_expression "*(code **)(puVar21 + -4)" (* "*") (cast_expression "(code **)(puVar21 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -4)" (( "(") (binary_expression "puVar21 + -4" (identifier "puVar21") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar30")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0xc) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0xc)" (* "*") (cast_expression "(byte **)(puVar21 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0xc)" (( "(") (binary_expression "puVar21 + -0xc" (identifier "puVar21") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x10)" (* "*") (cast_expression "(byte **)(puVar21 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x10)" (( "(") (binary_expression "puVar21 + -0x10" (identifier "puVar21") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x14)" (* "*") (cast_expression "(int **)(puVar21 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14)" (( "(") (binary_expression "puVar21 + -0x14" (identifier "puVar21") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -0x18)" (* "*") (cast_expression "(byte **)(puVar21 + -0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x18)" (( "(") (binary_expression "puVar21 + -0x18" (identifier "puVar21") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x20) = puVar16;" (assignment_expression "*(undefined4 **)(puVar21 + -0x20) = puVar16" (pointer_expression "*(undefined4 **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x24)" (* "*") (cast_expression "(uint *)(puVar21 + -0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x24)" (( "(") (binary_expression "puVar21 + -0x24" (identifier "puVar21") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x28)" (* "*") (cast_expression "(byte **)(puVar21 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x28)" (( "(") (binary_expression "puVar21 + -0x28" (identifier "puVar21") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(puVar21 + -0x144) = puVar9;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar9" (pointer_expression "*(undefined4 **)(puVar21 + -0x144)" (* "*") (cast_expression "(undefined4 **)(puVar21 + -0x144)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x144)" (( "(") (binary_expression "puVar21 + -0x144" (identifier "puVar21") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" (* "*") (cast_expression "(byte **)(puVar21 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x154)" (( "(") (binary_expression "puVar21 + -0x154" (identifier "puVar21") (+ "+") (number_literal "-0x154")) () ")")))) (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar17 = (byte *)(uint)*pbVar18;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar18" (identifier "pbVar17") (= "=") (binary_expression "(byte *)(uint)*pbVar18" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar18"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar9;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar9" (pointer_expression "*(undefined4 *)(puVar21 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x2c)" (( "(") (binary_expression "puVar21 + -0x2c" (identifier "puVar21") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "pbVar20 = *(byte **)(pcVar23 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(pcVar23 + 0x1d488)" (identifier "pbVar20") (= "=") (pointer_expression "*(byte **)(pcVar23 + 0x1d488)" (* "*") (cast_expression "(byte **)(pcVar23 + 0x1d488)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1d488)" (( "(") (binary_expression "pcVar23 + 0x1d488" (identifier "pcVar23") (+ "+") (number_literal "0x1d488")) () ")"))))) (; ";")) (expression_statement "pbVar27 = pbVar6;" (assignment_expression "pbVar27 = pbVar6" (identifier "pbVar27") (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "pbVar28 = pbVar14;" (assignment_expression "pbVar28 = pbVar14" (identifier "pbVar28") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (pbVar17 != (byte *)0x0) {\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" (if "if") (parenthesized_expression "(pbVar17 != (byte *)0x0)" (( "(") (binary_expression "pbVar17 != (byte *)0x0" (identifier "pbVar17") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar7 & 2;\n    param_2 = (byte *)(uVar7 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar7 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;\n    pbVar4 = pbVar18;\n    unaff_s6 = param_4;\n    do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" ({ "{") (expression_statement "uVar7 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar7 = *(uint *)(puVar21 + 0x10)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar21 + 0x10)" (* "*") (cast_expression "(uint *)(puVar21 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x10)" (( "(") (binary_expression "puVar21 + 0x10" (identifier "puVar21") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = uVar7 & 2;" (assignment_expression "unaff_s1 = uVar7 & 2" (identifier "unaff_s1") (= "=") (binary_expression "uVar7 & 2" (identifier "uVar7") (& "&") (number_literal "2"))) (; ";")) (expression_statement "param_2 = (byte *)(uVar7 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar7 & 0x10)" (identifier "param_2") (= "=") (cast_expression "(byte *)(uVar7 & 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar7 & 0x10)" (( "(") (binary_expression "uVar7 & 0x10" (identifier "uVar7") (& "&") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar7 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar7 & 5" (pointer_expression "*(uint *)(puVar21 + -0x140)" (* "*") (cast_expression "(uint *)(puVar21 + -0x140)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x140)" (( "(") (binary_expression "puVar21 + -0x140" (identifier "puVar21") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "uVar7 & 5" (identifier "uVar7") (& "&") (number_literal "5"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478)" (pointer_expression "*(undefined4 *)(puVar21 + -0x148)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x148)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x148)" (( "(") (binary_expression "puVar21 + -0x148" (identifier "puVar21") (+ "+") (number_literal "-0x148")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pcVar23 + 0x1d478)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 0x1d478)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x1d478)" (( "(") (binary_expression "pcVar23 + 0x1d478" (identifier "pcVar23") (+ "+") (number_literal "0x1d478")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;" (assignment_expression "*(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70" (pointer_expression "*(byte **)(puVar21 + -0x14c)" (* "*") (cast_expression "(byte **)(puVar21 + -0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x14c)" (( "(") (binary_expression "puVar21 + -0x14c" (identifier "puVar21") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "pbVar20 + 0x7c70" (identifier "pbVar20") (+ "+") (number_literal "0x7c70"))) (; ";")) (expression_statement "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar21 + -0x138)" (* "*") (cast_expression "(int *)(puVar21 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x138)" (( "(") (binary_expression "puVar21 + -0x138" (identifier "puVar21") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" (* "*") (cast_expression "(int *)(pcVar23 + 0x1d488)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x1d488)" (( "(") (binary_expression "pcVar23 + 0x1d488" (identifier "pcVar23") (+ "+") (number_literal "0x1d488")) () ")")))) (+ "+") (number_literal "-0x4960"))) (; ";")) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar21 + -0x13c)" (* "*") (cast_expression "(int *)(puVar21 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x13c)" (( "(") (binary_expression "puVar21 + -0x13c" (identifier "puVar21") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(pcVar23 + 0x1d488)" (* "*") (cast_expression "(int *)(pcVar23 + 0x1d488)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x1d488)" (( "(") (binary_expression "pcVar23 + 0x1d488" (identifier "pcVar23") (+ "+") (number_literal "0x1d488")) () ")")))) (+ "+") (number_literal "0x671c"))) (; ";")) (expression_statement "pbVar4 = pbVar18;" (assignment_expression "pbVar4 = pbVar18" (identifier "pbVar4") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    } while (pbVar17 != (byte *)0x0);" (do "do") (compound_statement "{\n      pbVar18 = pbVar17;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }\n      pbVar11 = (byte *)0x1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar6) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }\n      pbVar11 = (byte *)0x1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      pbVar4 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)*pbVar4;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;\n    }" ({ "{") (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" (identifier "pbVar18") (= "=") (identifier "pbVar17")) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);\n      }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" (( "(") (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" (* "*") (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7d7c)" (( "(") (binary_expression "pcVar24 + -0x7d7c" (identifier "pcVar24") (+ "+") (number_literal "-0x7d7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar21 + -0x160)" (* "*") (cast_expression "(code **)(puVar21 + -0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);" (assignment_expression "pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" (identifier "pbVar18") (= "=") (binary_expression "(byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(*piVar10 + (int)pbVar17 * 4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4 + 3)" (( "(") (binary_expression "*piVar10 + (int)pbVar17 * 4 + 3" (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17")) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" (if "if") (parenthesized_expression "(((uint)(pbVar18 + -0x21) & 0xff) < 0x3c)" (( "(") (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 + -0x21)" (( "(") (binary_expression "pbVar18 + -0x21" (identifier "pbVar18") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return pbVar4;\n      }" ({ "{") (expression_statement "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar4 = (byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))" (( "(") (pointer_expression "*(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" (* "*") (parenthesized_expression "(pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4))" (( "(") (binary_expression "pcVar24 +\n                           *(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" (identifier "pcVar24") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)" (( "(") (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar21 + -0x14c)" (* "*") (cast_expression "(int *)(puVar21 + -0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x14c)" (( "(") (binary_expression "puVar21 + -0x14c" (identifier "puVar21") (+ "+") (number_literal "-0x14c")) () ")")))) (+ "+") (binary_expression "((uint)(pbVar18 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar18 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar18 + -0x21) & 0xff" (call_expression "(uint)(pbVar18 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 + -0x21)" (( "(") (binary_expression "pbVar18 + -0x21" (identifier "pbVar18") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" (identifier "pbVar17") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (pbVar28 == pbVar6) goto LAB_0002c064;" (if "if") (parenthesized_expression "(pbVar28 == pbVar6)" (( "(") (binary_expression "pbVar28 == pbVar6" (identifier "pbVar28") (== "==") (identifier "pbVar6")) () ")")) (goto_statement "goto LAB_0002c064;" (goto "goto") (statement_identifier "LAB_0002c064") (; ";"))) (expression_statement "pbVar17 = (byte *)(uint)*pbVar28;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar28" (identifier "pbVar17") (= "=") (binary_expression "(byte *)(uint)*pbVar28" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar28"))) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();\n        pcVar24 = *(code **)(puVar21 + -0x160);\n        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);\n      }" ({ "{") (expression_statement "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();" (assignment_expression "piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))()" (identifier "piVar10") (= "=") (cast_expression "(int *)(**(code **)(pcVar24 + -0x7d7c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + -0x7d7c))()" (parenthesized_expression "(**(code **)(pcVar24 + -0x7d7c))" (( "(") (pointer_expression "**(code **)(pcVar24 + -0x7d7c)" (* "*") (pointer_expression "*(code **)(pcVar24 + -0x7d7c)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7d7c)" (( "(") (binary_expression "pcVar24 + -0x7d7c" (identifier "pcVar24") (+ "+") (number_literal "-0x7d7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar21 + -0x160);" (assignment_expression "pcVar24 = *(code **)(puVar21 + -0x160)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar21 + -0x160)" (* "*") (cast_expression "(code **)(puVar21 + -0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);" (assignment_expression "pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(*piVar10 + (int)pbVar17 * 4)" (* "*") (cast_expression "(byte **)(*piVar10 + (int)pbVar17 * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + (int)pbVar17 * 4)" (( "(") (binary_expression "*piVar10 + (int)pbVar17 * 4" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" (identifier "unaff_s6") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (pbVar17 != pbVar18) goto LAB_0002c064;" (if "if") (parenthesized_expression "(pbVar17 != pbVar18)" (( "(") (binary_expression "pbVar17 != pbVar18" (identifier "pbVar17") (!= "!=") (identifier "pbVar18")) () ")")) (goto_statement "goto LAB_0002c064;" (goto "goto") (statement_identifier "LAB_0002c064") (; ";"))) (expression_statement "pbVar4 = *(byte **)(puVar21 + -0x154);" (assignment_expression "pbVar4 = *(byte **)(puVar21 + -0x154)" (identifier "pbVar4") (= "=") (pointer_expression "*(byte **)(puVar21 + -0x154)" (* "*") (cast_expression "(byte **)(puVar21 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x154)" (( "(") (binary_expression "puVar21 + -0x154" (identifier "puVar21") (+ "+") (number_literal "-0x154")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" (identifier "unaff_s6") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar17 = (byte *)(uint)*pbVar4;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar4" (identifier "pbVar17") (= "=") (binary_expression "(byte *)(uint)*pbVar4" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar4 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar4 + 1" (pointer_expression "*(byte **)(puVar21 + -0x154)" (* "*") (cast_expression "(byte **)(puVar21 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x154)" (( "(") (binary_expression "puVar21 + -0x154" (identifier "puVar21") (+ "+") (number_literal "-0x154")) () ")")))) (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar17 != (byte *)0x0)" (( "(") (binary_expression "pbVar17 != (byte *)0x0" (identifier "pbVar17") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar11 = (byte *)0x0;" (assignment_expression "pbVar11 = (byte *)0x0" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pbVar28 != pbVar6) {\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar28 != pbVar6)" (( "(") (binary_expression "pbVar28 != pbVar6" (identifier "pbVar28") (!= "!=") (identifier "pbVar6")) () ")")) (compound_statement "{\n    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }\n  }" ({ "{") (expression_statement "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*(uint *)(puVar21 + 0x10) & 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(puVar21 + 0x10) & 8)" (( "(") (binary_expression "*(uint *)(puVar21 + 0x10) & 8" (pointer_expression "*(uint *)(puVar21 + 0x10)" (* "*") (cast_expression "(uint *)(puVar21 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x10)" (( "(") (binary_expression "puVar21 + 0x10" (identifier "puVar21") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar11 = (byte *)0x1;\n    }\n    else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0x0)" (( "(") (binary_expression "pbVar4 == (byte *)0x0" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar11 = (byte *)0x1;\n    }" ({ "{") (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" (else "else") (compound_statement "{\n      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);\n    }" ({ "{") (expression_statement "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);" (assignment_expression "pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(uint)(*pbVar28 != 0x2f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*pbVar28 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar28 != 0x2f)" (( "(") (binary_expression "*pbVar28 != 0x2f" (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")) (!= "!=") (number_literal "0x2f")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0002c064:\n  iVar3 = *(int *)(puVar21 + -0x2c);" (statement_identifier "LAB_0002c064") (: ":") (expression_statement "iVar3 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x2c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar21 + -0x2c)" (* "*") (cast_expression "(int *)(puVar21 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x2c)" (( "(") (binary_expression "puVar21 + -0x2c" (identifier "puVar21") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar3 == **(int **)(puVar21 + -0x144)) {\n    return pbVar11;\n  }" (if "if") (parenthesized_expression "(iVar3 == **(int **)(puVar21 + -0x144))" (( "(") (binary_expression "iVar3 == **(int **)(puVar21 + -0x144)" (identifier "iVar3") (== "==") (pointer_expression "**(int **)(puVar21 + -0x144)" (* "*") (pointer_expression "*(int **)(puVar21 + -0x144)" (* "*") (cast_expression "(int **)(puVar21 + -0x144)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x144)" (( "(") (binary_expression "puVar21 + -0x144" (identifier "puVar21") (+ "+") (number_literal "-0x144")) () ")")))))) () ")")) (compound_statement "{\n    return pbVar11;\n  }" ({ "{") (return_statement "return pbVar11;" (return "return") (identifier "pbVar11") (; ";")) (} "}"))) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7c10)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7c10)" (( "(") (binary_expression "pcVar24 + -0x7c10" (identifier "pcVar24") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" (identifier "pcVar30") (= "=") (identifier "gnu_fnmatch")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" (identifier "puVar8") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "pcVar24 = *(code **)(pcVar23 + 0x1cbc4);" (assignment_expression "pcVar24 = *(code **)(pcVar23 + 0x1cbc4)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(pcVar23 + 0x1cbc4)" (* "*") (cast_expression "(code **)(pcVar23 + 0x1cbc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1cbc4)" (( "(") (binary_expression "pcVar23 + 0x1cbc4" (identifier "pcVar23") (+ "+") (number_literal "0x1cbc4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar21 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar21 + -0x19c)" (* "*") (cast_expression "(uint *)(puVar21 + -0x19c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x19c)" (( "(") (binary_expression "puVar21 + -0x19c" (identifier "puVar21") (+ "+") (number_literal "-0x19c")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piVar10 = *(int **)(pcVar23 + 0x1cc28);" (assignment_expression "piVar10 = *(int **)(pcVar23 + 0x1cc28)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(pcVar23 + 0x1cc28)" (* "*") (cast_expression "(int **)(pcVar23 + 0x1cc28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1cc28)" (( "(") (binary_expression "pcVar23 + 0x1cc28" (identifier "pcVar23") (+ "+") (number_literal "0x1cc28")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar28;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar28" (pointer_expression "*(byte **)(puVar21 + -0x180)" (* "*") (cast_expression "(byte **)(puVar21 + -0x180)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x180)" (( "(") (binary_expression "puVar21 + -0x180" (identifier "puVar21") (+ "+") (number_literal "-0x180")) () ")")))) (= "=") (identifier "pbVar28")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x198) = pbVar17;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar17" (pointer_expression "*(byte **)(puVar21 + -0x198)" (* "*") (cast_expression "(byte **)(puVar21 + -0x198)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x198)" (( "(") (binary_expression "puVar21 + -0x198" (identifier "puVar21") (+ "+") (number_literal "-0x198")) () ")")))) (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c" (pointer_expression "*(code **)(puVar21 + -0x1c8)" (* "*") (cast_expression "(code **)(puVar21 + -0x1c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")")))) (= "=") (binary_expression "pcVar23 + 0x2480c" (identifier "pcVar23") (+ "+") (number_literal "0x2480c"))) (; ";")) (expression_statement "*(code **)(puVar21 + -0x17c) = pcVar30;" (assignment_expression "*(code **)(puVar21 + -0x17c) = pcVar30" (pointer_expression "*(code **)(puVar21 + -0x17c)" (* "*") (cast_expression "(code **)(puVar21 + -0x17c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x17c)" (( "(") (binary_expression "puVar21 + -0x17c" (identifier "puVar21") (+ "+") (number_literal "-0x17c")) () ")")))) (= "=") (identifier "pcVar30")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x184) = pbVar20;" (assignment_expression "*(byte **)(puVar21 + -0x184) = pbVar20" (pointer_expression "*(byte **)(puVar21 + -0x184)" (* "*") (cast_expression "(byte **)(puVar21 + -0x184)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x184)" (( "(") (binary_expression "puVar21 + -0x184" (identifier "puVar21") (+ "+") (number_literal "-0x184")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar21 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar21 + -0x188)" (* "*") (cast_expression "(byte **)(puVar21 + -0x188)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x188)" (( "(") (binary_expression "puVar21 + -0x188" (identifier "puVar21") (+ "+") (number_literal "-0x188")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(int **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(int **)(puVar21 + -0x18c)" (* "*") (cast_expression "(int **)(puVar21 + -0x18c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x18c)" (( "(") (binary_expression "puVar21 + -0x18c" (identifier "puVar21") (+ "+") (number_literal "-0x18c")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar21 + -400) = pbVar4;" (assignment_expression "*(byte **)(puVar21 + -400) = pbVar4" (pointer_expression "*(byte **)(puVar21 + -400)" (* "*") (cast_expression "(byte **)(puVar21 + -400)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -400)" (( "(") (binary_expression "puVar21 + -400" (identifier "puVar21") (+ "+") (number_literal "-400")) () ")")))) (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x194) = pbVar6;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar6" (pointer_expression "*(byte **)(puVar21 + -0x194)" (* "*") (cast_expression "(byte **)(puVar21 + -0x194)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x194)" (( "(") (binary_expression "puVar21 + -0x194" (identifier "puVar21") (+ "+") (number_literal "-0x194")) () ")")))) (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar21 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar21 + -0x1a0)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1a0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1a0)" (( "(") (binary_expression "puVar21 + -0x1a0" (identifier "puVar21") (+ "+") (number_literal "-0x1a0")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1b4) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1b4)" (* "*") (cast_expression "(int *)(puVar21 + -0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1b4)" (( "(") (binary_expression "puVar21 + -0x1b4" (identifier "puVar21") (+ "+") (number_literal "-0x1b4")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1b8) = pbVar14;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar14" (pointer_expression "*(byte **)(puVar21 + -0x1b8)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1b8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1b8)" (( "(") (binary_expression "puVar21 + -0x1b8" (identifier "puVar21") (+ "+") (number_literal "-0x1b8")) () ")")))) (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1a4) = *piVar10;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar10" (pointer_expression "*(int *)(puVar21 + -0x1a4)" (* "*") (cast_expression "(int *)(puVar21 + -0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1a4)" (( "(") (binary_expression "puVar21 + -0x1a4" (identifier "puVar21") (+ "+") (number_literal "-0x1a4")) () ")")))) (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "iVar3 = (*pcVar24)();" (assignment_expression "iVar3 = (*pcVar24)()" (identifier "iVar3") (= "=") (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 1) {\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);\n    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);\n    *(byte **)(puVar21 + -0x1d0) = pbVar27;\n    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n    iVar3 = *(int *)(puVar21 + -0x1c8);\n    puVar8 = puVar21 + -0x1e0;\n  }" ({ "{") (labeled_statement "LAB_0002ca44:\n    pbVar14 = *(byte **)(puVar21 + -0x1b8);" (statement_identifier "LAB_0002ca44") (: ":") (expression_statement "pbVar14 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar14 = *(byte **)(puVar21 + -0x1b8)" (identifier "pbVar14") (= "=") (pointer_expression "*(byte **)(puVar21 + -0x1b8)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1b8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1b8)" (( "(") (binary_expression "puVar21 + -0x1b8" (identifier "puVar21") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";"))) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar19 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ca4))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7ca4)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7ca4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ca4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ca4)" (( "(") (binary_expression "iVar19 + -0x7ca4" (identifier "iVar19") (+ "+") (number_literal "-0x7ca4")) () ")"))))) () ")")) (argument_list "(pbVar14)" (( "(") (identifier "pbVar14") () ")")))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1d0)" (( "(") (binary_expression "puVar21 + -0x1d0" (identifier "puVar21") (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "FUN_0002bd90") (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,\n                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(puVar21 + -0x1b4)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1b4)" (( "(") (binary_expression "puVar21 + -0x1b4" (identifier "puVar21") (+ "+") (number_literal "-0x1b4")) () ")")))) (, ",") (identifier "pbVar14") (, ",") (binary_expression "pbVar14 + iVar3" (identifier "pbVar14") (+ "+") (identifier "iVar3")) (, ",") (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar27 << 0x1d)" (( "(") (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" (identifier "puVar8") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")) (else_clause "else {\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" (else "else") (compound_statement "{\n    puVar15 = puVar21 + -0x1ac;\n    pcVar23 = *(code **)(iVar19 + -0x7ba4);\n    unaff_s5 = (int *)(puVar21 + -0x1b4);\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);\n    pbVar6 = (byte *)(iVar3 + 1);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    uVar31 = 0x129;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar14 = unaff_s6;\n    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);\n    pbVar20 = pbVar4 + 1;\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);\n    iVar19 = *(int *)(puVar21 + -0x1c8);\n    if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar6 + (int)pbVar20;\n    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }\n  }" ({ "{") (expression_statement "puVar15 = puVar21 + -0x1ac;" (assignment_expression "puVar15 = puVar21 + -0x1ac" (identifier "puVar15") (= "=") (binary_expression "puVar21 + -0x1ac" (identifier "puVar21") (+ "+") (number_literal "-0x1ac"))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = (int *)(puVar21 + -0x1b4);" (assignment_expression "unaff_s5 = (int *)(puVar21 + -0x1b4)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)(puVar21 + -0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1b4)" (( "(") (binary_expression "puVar21 + -0x1b4" (identifier "puVar21") (+ "+") (number_literal "-0x1b4")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1ac)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1ac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1ac)" (( "(") (binary_expression "puVar21 + -0x1ac" (identifier "puVar21") (+ "+") (number_literal "-0x1ac")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar21 + -0x1a8)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1a8)" (( "(") (binary_expression "puVar21 + -0x1a8" (identifier "puVar21") (+ "+") (number_literal "-0x1a8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);" (assignment_expression "iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15)" (identifier "iVar3") (= "=") (call_expression "(*pcVar23)(0,unaff_s5,0,puVar15)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(0,unaff_s5,0,puVar15)" (( "(") (number_literal "0") (, ",") (identifier "unaff_s5") (, ",") (number_literal "0") (, ",") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "pbVar6 = (byte *)(iVar3 + 1);" (assignment_expression "pbVar6 = (byte *)(iVar3 + 1)" (identifier "pbVar6") (= "=") (cast_expression "(byte *)(iVar3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 1)" (( "(") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;" (if "if") (parenthesized_expression "(pbVar6 == (byte *)0x0)" (( "(") (binary_expression "pbVar6 == (byte *)0x0" (identifier "pbVar6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ca44;" (goto "goto") (statement_identifier "LAB_0002ca44") (; ";"))) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7be8)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7be8)" (* "*") (cast_expression "(code **)(iVar19 + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7be8)" (( "(") (binary_expression "iVar19 + -0x7be8" (identifier "iVar19") (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" (identifier "uVar31") (= "=") (number_literal "0x129")) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0002ccf0;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002ccf0;" (goto "goto") (statement_identifier "LAB_0002ccf0") (; ";"))) (expression_statement "unaff_s6 = puVar21 + -0x1b8;" (assignment_expression "unaff_s6 = puVar21 + -0x1b8" (identifier "unaff_s6") (= "=") (binary_expression "puVar21 + -0x1b8" (identifier "puVar21") (+ "+") (number_literal "-0x1b8"))) (; ";")) (expression_statement "pbVar14 = unaff_s6;" (assignment_expression "pbVar14 = unaff_s6" (identifier "pbVar14") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);" (assignment_expression "pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(0,unaff_s6,0,puVar15)" (( "(") (number_literal "0") (, ",") (identifier "unaff_s6") (, ",") (number_literal "0") (, ",") (identifier "puVar15") () ")"))))) (; ";")) (expression_statement "pbVar20 = pbVar4 + 1;" (assignment_expression "pbVar20 = pbVar4 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;" (if "if") (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ca44;" (goto "goto") (statement_identifier "LAB_0002ca44") (; ";"))) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar19 + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7be8))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7be8)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7be8)" (* "*") (cast_expression "(code **)(iVar19 + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7be8)" (( "(") (binary_expression "iVar19 + -0x7be8" (identifier "iVar19") (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" ({ "{") (expression_statement "uVar31 = 0x12d;" (assignment_expression "uVar31 = 0x12d" (identifier "uVar31") (= "=") (number_literal "0x12d")) (; ";")) (goto_statement "goto LAB_0002ccf0;" (goto "goto") (statement_identifier "LAB_0002ccf0") (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar6 + (int)pbVar20;" (assignment_expression "pbVar18 = pbVar6 + (int)pbVar20" (identifier "pbVar18") (= "=") (binary_expression "pbVar6 + (int)pbVar20" (identifier "pbVar6") (+ "+") (cast_expression "(int)pbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar20")))) (; ";")) (if_statement "if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" (if "if") (parenthesized_expression "((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18))" (( "(") (binary_expression "(pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)" (parenthesized_expression "(pbVar18 < pbVar6)" (( "(") (binary_expression "pbVar18 < pbVar6" (identifier "pbVar18") (< "<") (identifier "pbVar6")) () ")")) (|| "||") (parenthesized_expression "((byte *)0x3fffffff < pbVar18)" (( "(") (binary_expression "(byte *)0x3fffffff < pbVar18" (cast_expression "(byte *)0x3fffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3fffffff")) (< "<") (identifier "pbVar18")) () ")"))) () ")")) (compound_statement "{\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      *puVar16 = 0xc;\n    }" ({ "{") (labeled_statement "LAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;" (statement_identifier "LAB_0002cc10") (: ":") (expression_statement "pbVar18 = (byte *)0xffffffff;" (assignment_expression "pbVar18 = (byte *)0xffffffff" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7cc8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar19 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7cc8)" (( "(") (binary_expression "iVar19 + -0x7cc8" (identifier "iVar19") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "*puVar16 = 0xc;" (assignment_expression "*puVar16 = 0xc" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" (else "else") (if_statement "if (pbVar18 < (byte *)0x7d0) {\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }\n    else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" (if "if") (parenthesized_expression "(pbVar18 < (byte *)0x7d0)" (( "(") (binary_expression "pbVar18 < (byte *)0x7d0" (identifier "pbVar18") (< "<") (cast_expression "(byte *)0x7d0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d0"))) () ")")) (compound_statement "{\n      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);\n      pbVar17 = (byte *)(piVar13 + (int)pbVar6);\n      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      unaff_s5 = piVar13;\n      puVar8 = puVar21 + iVar5 + -0x1e0;\n    }" ({ "{") (expression_statement "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8)" (identifier "iVar5") (= "=") (unary_expression "-((int)pbVar18 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)pbVar18 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)pbVar18 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar18 * 4 + 7U" (binary_expression "(int)pbVar18 * 4" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);" (assignment_expression "piVar13 = (int *)(puVar21 + iVar5 + -0x1c8)" (identifier "piVar13") (= "=") (cast_expression "(int *)(puVar21 + iVar5 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + iVar5 + -0x1c8)" (( "(") (binary_expression "puVar21 + iVar5 + -0x1c8" (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "-0x1c8")) () ")")))) (; ";")) (expression_statement "pbVar17 = (byte *)(piVar13 + (int)pbVar6);" (assignment_expression "pbVar17 = (byte *)(piVar13 + (int)pbVar6)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(piVar13 + (int)pbVar6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar13 + (int)pbVar6)" (( "(") (binary_expression "piVar13 + (int)pbVar6" (identifier "piVar13") (+ "+") (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6"))) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(piVar13,unaff_s5,pbVar6,puVar15)" (( "(") (identifier "piVar13") (, ",") (identifier "unaff_s5") (, ",") (identifier "pbVar6") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (* "*") (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (( "(") (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" ({ "{") (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" (statement_identifier "LAB_0002cd10") (: ":") (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        } while( true );" (do "do") (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);\n        }" ({ "{") (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" (identifier "uVar31") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" (statement_identifier "LAB_0002ccf0") (: ":") (expression_statement "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar19 + -0x7d80))\n                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d80))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7d80)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7d80)" (* "*") (cast_expression "(code **)(iVar19 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7d80)" (( "(") (binary_expression "iVar19 + -0x7d80" (identifier "iVar19") (+ "+") (number_literal "-0x7d80")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar19 + -0x7fc8) + 0x7d78)" (( "(") (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar19 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + -0x7fc8)" (( "(") (binary_expression "iVar19 + -0x7fc8" (identifier "iVar19") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a70")) (, ",") (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar19 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + -0x7fc8)" (( "(") (binary_expression "iVar19 + -0x7fc8" (identifier "iVar19") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a60")) (, ",") (identifier "uVar31") (, ",") (binary_expression "*(int *)(iVar19 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar19 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar19 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + -0x7fc8)" (( "(") (binary_expression "iVar19 + -0x7fc8" (identifier "iVar19") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7d78")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(**(code **)(iVar19 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" (( "(") (identifier "pbVar17") (, ",") (identifier "unaff_s6") (, ",") (identifier "pbVar20") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + iVar5 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar21 + iVar5 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + iVar5 + -0x1d0)" (( "(") (binary_expression "puVar21 + iVar5 + -0x1d0" (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" (identifier "pbVar14") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002aaa0(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "FUN_0002aaa0") (argument_list "(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,\n                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (identifier "piVar13") (, ",") (identifier "pbVar17") (, ",") (binary_expression "pbVar17 + (int)pbVar4 * 4" (identifier "pbVar17") (+ "+") (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar4")) (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar27 << 0x1d)" (( "(") (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" (identifier "pbVar6") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "unaff_s5 = piVar13;" (assignment_expression "unaff_s5 = piVar13" (identifier "unaff_s5") (= "=") (identifier "piVar13")) (; ";")) (expression_statement "puVar8 = puVar21 + iVar5 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + iVar5 + -0x1e0" (identifier "puVar8") (= "=") (binary_expression "puVar21 + iVar5 + -0x1e0" (binary_expression "puVar21 + iVar5" (identifier "puVar21") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" (else "else") (compound_statement "{\n      iVar3 = (**(code **)(iVar19 + -0x7c80))();\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cc10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar3;\n      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);\n      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);\n      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);\n      iVar19 = *(int *)(puVar21 + -0x1c8);\n      if (iVar3 == 0) goto LAB_0002cd10;\n      pcVar23 = *(code **)(iVar19 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);\n      *(byte **)(puVar21 + -0x1d0) = pbVar27;\n      pbVar14 = pbVar17;\n      pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar3 = *(int *)(puVar21 + -0x1c8);\n      pbVar6 = pbVar17;\n      puVar8 = puVar21 + -0x1e0;\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7c80))();" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7c80))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar19 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7c80))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7c80)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7c80)" (* "*") (cast_expression "(code **)(iVar19 + -0x7c80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7c80)" (( "(") (binary_expression "iVar19 + -0x7c80" (identifier "iVar19") (+ "+") (number_literal "-0x7c80")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0002cc10;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cc10;" (goto "goto") (statement_identifier "LAB_0002cc10") (; ";"))) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar3;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar3" (pointer_expression "*(int *)(puVar21 + -0x1bc)" (* "*") (cast_expression "(int *)(puVar21 + -0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1bc)" (( "(") (binary_expression "puVar21 + -0x1bc" (identifier "puVar21") (+ "+") (number_literal "-0x1bc")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);" (assignment_expression "pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(iVar3 + (int)pbVar6 * 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + (int)pbVar6 * 4)" (( "(") (binary_expression "iVar3 + (int)pbVar6 * 4" (identifier "iVar3") (+ "+") (binary_expression "(int)pbVar6 * 4" (cast_expression "(int)pbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar6")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);" (call_expression "(*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(iVar3,unaff_s5,pbVar6,puVar15)" (( "(") (identifier "iVar3") (, ",") (identifier "unaff_s5") (, ",") (identifier "pbVar6") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15)" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (* "*") (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7be8)" (( "(") (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0002cd10;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cd10;" (goto "goto") (statement_identifier "LAB_0002cd10") (; ";"))) (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7ba4);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7ba4)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar19 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar19 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7ba4)" (( "(") (binary_expression "iVar19 + -0x7ba4" (identifier "iVar19") (+ "+") (number_literal "-0x7ba4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1bc)" (( "(") (binary_expression "puVar21 + -0x1bc" (identifier "puVar21") (+ "+") (number_literal "-0x1bc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1bc)" (( "(") (binary_expression "puVar21 + -0x1bc" (identifier "puVar21") (+ "+") (number_literal "-0x1bc")) () ")"))))) (; ";")) (expression_statement "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);" (call_expression "(*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(pbVar17,unaff_s6,pbVar20,puVar15)" (( "(") (identifier "pbVar17") (, ",") (identifier "unaff_s6") (, ",") (identifier "pbVar20") (, ",") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar27" (pointer_expression "*(byte **)(puVar21 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar21 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1d0)" (( "(") (binary_expression "puVar21 + -0x1d0" (identifier "puVar21") (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" (identifier "pbVar14") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)\n      ;" (assignment_expression "pbVar18 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" (identifier "FUN_0002aaa0") (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,\n                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1bc)" (( "(") (binary_expression "puVar21 + -0x1bc" (identifier "puVar21") (+ "+") (number_literal "-0x1bc")) () ")")))) (, ",") (identifier "pbVar17") (, ",") (binary_expression "pbVar17 + (int)pbVar4 * 4" (identifier "pbVar17") (+ "+") (binary_expression "(int)pbVar4 * 4" (cast_expression "(int)pbVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar4")) (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)((int)pbVar27 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar27 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar27 << 0x1d)" (( "(") (binary_expression "(int)pbVar27 << 0x1d" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" (* "*") (cast_expression "(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar21 + -0x1c8) + -0x7bd8)" (( "(") (binary_expression "*(int *)(puVar21 + -0x1c8) + -0x7bd8" (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7bd8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar21 + -0x1bc))" (( "(") (pointer_expression "*(undefined4 *)(puVar21 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar21 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1bc)" (( "(") (binary_expression "puVar21 + -0x1bc" (identifier "puVar21") (+ "+") (number_literal "-0x1bc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar3 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar21 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1c8)" (( "(") (binary_expression "puVar21 + -0x1c8" (identifier "puVar21") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "pbVar6 = pbVar17;" (assignment_expression "pbVar6 = pbVar17" (identifier "pbVar6") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "puVar8 = puVar21 + -0x1e0;" (assignment_expression "puVar8 = puVar21 + -0x1e0" (identifier "puVar8") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")))))) (} "}")))) (expression_statement "iVar19 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar19 = *(int *)(puVar21 + -0x1a4)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar21 + -0x1a4)" (* "*") (cast_expression "(int *)(puVar21 + -0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + -0x1a4)" (( "(") (binary_expression "puVar21 + -0x1a4" (identifier "puVar21") (+ "+") (number_literal "-0x1a4")) () ")"))))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c10)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7c10)" (* "*") (cast_expression "(code **)(iVar3 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7c10)" (( "(") (binary_expression "iVar3 + -0x7c10" (identifier "iVar3") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (if_statement "if (iVar19 == *piVar10) {\n    return pbVar18;\n  }" (if "if") (parenthesized_expression "(iVar19 == *piVar10)" (( "(") (binary_expression "iVar19 == *piVar10" (identifier "iVar19") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (compound_statement "{\n    return pbVar18;\n  }" ({ "{") (return_statement "return pbVar18;" (return "return") (identifier "pbVar18") (; ";")) (} "}"))) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" (identifier "pcVar30") (= "=") (identifier "rpl_getcwd")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar24 = pcVar23 + 0x244c0;" (assignment_expression "pcVar24 = pcVar23 + 0x244c0" (identifier "pcVar24") (= "=") (binary_expression "pcVar23 + 0x244c0" (identifier "pcVar23") (+ "+") (number_literal "0x244c0"))) (; ";")) (expression_statement "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);" (assignment_expression "puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc)" (identifier "puVar16") (= "=") (pointer_expression "*(undefined4 **)(pcVar23 + 0x1c8dc)" (* "*") (cast_expression "(undefined4 **)(pcVar23 + 0x1c8dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1c8dc)" (( "(") (binary_expression "pcVar23 + 0x1c8dc" (identifier "pcVar23") (+ "+") (number_literal "0x1c8dc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar8 + -0xf4) = puVar16;" (assignment_expression "*(undefined4 **)(puVar8 + -0xf4) = puVar16" (pointer_expression "*(undefined4 **)(puVar8 + -0xf4)" (* "*") (cast_expression "(undefined4 **)(puVar8 + -0xf4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xf4)" (( "(") (binary_expression "puVar8 + -0xf4" (identifier "puVar8") (+ "+") (number_literal "-0xf4")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(code **)(puVar8 + -0x110) = pcVar24;" (assignment_expression "*(code **)(puVar8 + -0x110) = pcVar24" (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")")))) (= "=") (identifier "pcVar24")) (; ";")) (expression_statement "*(code **)(puVar8 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar8 + -4) = pcVar30" (pointer_expression "*(code **)(puVar8 + -4)" (* "*") (cast_expression "(code **)(puVar8 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -4)" (( "(") (binary_expression "puVar8 + -4" (identifier "puVar8") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar30")) (; ";")) (expression_statement "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar8 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar8 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -8)" (( "(") (binary_expression "puVar8 + -8" (identifier "puVar8") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "*(byte **)(puVar8 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0xc)" (* "*") (cast_expression "(byte **)(puVar8 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xc)" (( "(") (binary_expression "puVar8 + -0xc" (identifier "puVar8") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar8 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar8 + -0x10)" (* "*") (cast_expression "(byte **)(puVar8 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x10)" (( "(") (binary_expression "puVar8 + -0x10" (identifier "puVar8") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int **)(puVar8 + -0x14) = unaff_s5;" (assignment_expression "*(int **)(puVar8 + -0x14) = unaff_s5" (pointer_expression "*(int **)(puVar8 + -0x14)" (* "*") (cast_expression "(int **)(puVar8 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x14)" (( "(") (binary_expression "puVar8 + -0x14" (identifier "puVar8") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x18) = pbVar4;" (assignment_expression "*(byte **)(puVar8 + -0x18) = pbVar4" (pointer_expression "*(byte **)(puVar8 + -0x18)" (* "*") (cast_expression "(byte **)(puVar8 + -0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x18)" (( "(") (binary_expression "puVar8 + -0x18" (identifier "puVar8") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x1c) = pbVar6;" (assignment_expression "*(byte **)(puVar8 + -0x1c) = pbVar6" (pointer_expression "*(byte **)(puVar8 + -0x1c)" (* "*") (cast_expression "(byte **)(puVar8 + -0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x1c)" (( "(") (binary_expression "puVar8 + -0x1c" (identifier "puVar8") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pbVar6")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x20) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x20) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x20)" (* "*") (cast_expression "(byte **)(puVar8 + -0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x20)" (( "(") (binary_expression "puVar8 + -0x20" (identifier "puVar8") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "*(int **)(puVar8 + -0x24) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x24) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x24)" (* "*") (cast_expression "(int **)(puVar8 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x24)" (( "(") (binary_expression "puVar8 + -0x24" (identifier "puVar8") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x28) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x28) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x28)" (* "*") (cast_expression "(byte **)(puVar8 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x28)" (( "(") (binary_expression "puVar8 + -0x28" (identifier "puVar8") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "*(byte **)(puVar8 + 4) = pbVar14;" (assignment_expression "*(byte **)(puVar8 + 4) = pbVar14" (pointer_expression "*(byte **)(puVar8 + 4)" (* "*") (cast_expression "(byte **)(puVar8 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "*(int *)(puVar8 + -0x100) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x100) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x2c) = *puVar16;" (assignment_expression "*(undefined4 *)(puVar8 + -0x2c) = *puVar16" (pointer_expression "*(undefined4 *)(puVar8 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x2c)" (( "(") (binary_expression "puVar8 + -0x2c" (identifier "puVar8") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar16" (* "*") (identifier "puVar16"))) (; ";")) (if_statement "if (pbVar14 == (byte *)0x0) {\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" (if "if") (parenthesized_expression "(pbVar14 == (byte *)0x0)" (( "(") (binary_expression "pbVar14 == (byte *)0x0" (identifier "pbVar14") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n    *puVar16 = 0x16;\n  }" ({ "{") (if_statement "if (iVar19 == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n      *(int *)(puVar8 + -0x108) = iVar3;\n      if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (number_literal "0x1000")) (; ";")) (labeled_statement "LAB_0002cd88:\n      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" (statement_identifier "LAB_0002cd88") (: ":") (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c840))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x1c840)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x1c840)" (* "*") (cast_expression "(code **)(pcVar23 + 0x1c840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1c840)" (( "(") (binary_expression "pcVar23 + 0x1c840" (identifier "pcVar23") (+ "+") (number_literal "0x1c840")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar8 + -0xf8))" (( "(") (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) () ")")))) (; ";"))) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) {\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar13 = *(int **)(puVar8 + -0xf4);\n        goto LAB_0002d15c;\n      }" ({ "{") (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(puVar8 + -0xf4)" (* "*") (cast_expression "(int **)(puVar8 + -0xf4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xf4)" (( "(") (binary_expression "puVar8 + -0xf4" (identifier "puVar8") (+ "+") (number_literal "-0xf4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002d15c;" (goto "goto") (statement_identifier "LAB_0002d15c") (; ";")) (} "}"))) (goto_statement "goto LAB_0002cdbc;" (goto "goto") (statement_identifier "LAB_0002cdbc") (; ";")) (} "}"))) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar23 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c7f8))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x1c7f8)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x1c7f8)" (* "*") (cast_expression "(code **)(pcVar23 + 0x1c7f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1c7f8)" (( "(") (binary_expression "pcVar23 + 0x1c7f8" (identifier "pcVar23") (+ "+") (number_literal "0x1c7f8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar16 = 0x16;" (assignment_expression "*puVar16 = 0x16" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0x16")) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" (else "else") (compound_statement "{\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);\nLAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);\n    puVar21 = puVar8 + -0xd0;\n    iVar5 = *(int *)(puVar8 + -0xf8);\n    pcVar23 = *(code **)(pcVar24 + -0x7d60);\n    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;\n    iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n    iVar25 = *(int *)(puVar8 + -0x110);\n    if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar27;\n    pcVar24 = *(code **)(puVar8 + -0x110);\n    if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;\n    *(undefined4 *)(puVar8 + -0x108) = 0;\n  }" ({ "{") (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);\n      goto LAB_0002cd88;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002cd88;" (goto "goto") (statement_identifier "LAB_0002cd88") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100)" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (labeled_statement "LAB_0002cdbc:\n    iVar3 = *(int *)(puVar8 + -0x108);" (statement_identifier "LAB_0002cdbc") (: ":") (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")"))))) (; ";"))) (expression_statement "puVar21 = puVar8 + -0xd0;" (assignment_expression "puVar21 = puVar8 + -0xd0" (identifier "puVar21") (= "=") (binary_expression "puVar8 + -0xd0" (identifier "puVar8") (+ "+") (number_literal "-0xd0"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar8 + -0xf8);" (assignment_expression "iVar5 = *(int *)(puVar8 + -0xf8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar8 + -0xf8)" (* "*") (cast_expression "(int *)(puVar8 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")"))))) (; ";")) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d60)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7d60)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7d60)" (( "(") (binary_expression "pcVar24 + -0x7d60" (identifier "pcVar24") (+ "+") (number_literal "-0x7d60")) () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + -0x7fc8) + 0x6104)" (( "(") (binary_expression "*(int *)(pcVar24 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar24 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcVar24 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + -0x7fc8)" (( "(") (binary_expression "pcVar24 + -0x7fc8" (identifier "pcVar24") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6104")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + iVar5 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar3 + iVar5 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar3 + iVar5 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar3 + iVar5 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar5 + -1)" (( "(") (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" (identifier "iVar3") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" (identifier "iVar19") (= "=") (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(3,pbVar14,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar14") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar19) {\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" (if "if") (parenthesized_expression "(-1 < iVar19)" (( "(") (binary_expression "-1 < iVar19" (number_literal "-1") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n      iVar19 = *(int *)(iVar25 + -0x7fc8);\n      pcVar23 = *(code **)(iVar25 + -0x7d60);\n      iVar29 = *(int *)(puVar8 + -0xc0);\n      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);\n      pbVar14 = (byte *)(iVar19 + 0x6154);\n      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);\n      iVar19 = (*pcVar23)(3,pbVar14,puVar21);\n      iVar25 = *(int *)(puVar8 + -0x110);\n      if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" ({ "{") (expression_statement "iVar19 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar19 = *(int *)(iVar25 + -0x7fc8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar25 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar25 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7fc8)" (( "(") (binary_expression "iVar25 + -0x7fc8" (identifier "iVar25") (+ "+") (number_literal "-0x7fc8")) () ")"))))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7d60)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7d60)" (* "*") (cast_expression "(code **)(iVar25 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7d60)" (( "(") (binary_expression "iVar25 + -0x7d60" (identifier "iVar25") (+ "+") (number_literal "-0x7d60")) () ")"))))) (; ";")) (expression_statement "iVar29 = *(int *)(puVar8 + -0xc0);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xc0)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(puVar8 + -0xc0)" (* "*") (cast_expression "(int *)(puVar8 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xc0)" (( "(") (binary_expression "puVar8 + -0xc0" (identifier "puVar8") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd0)" (( "(") (binary_expression "puVar8 + -0xd0" (identifier "puVar8") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)(iVar19 + 0x6154);" (assignment_expression "pbVar14 = (byte *)(iVar19 + 0x6154)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)(iVar19 + 0x6154)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x6154)" (( "(") (binary_expression "iVar19 + 0x6154" (identifier "iVar19") (+ "+") (number_literal "0x6154")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xfc)" (( "(") (binary_expression "puVar8 + -0xfc" (identifier "puVar8") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xbc)" (( "(") (binary_expression "puVar8 + -0xbc" (identifier "puVar8") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "iVar19 = (*pcVar23)(3,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar14,puVar21)" (identifier "iVar19") (= "=") (call_expression "(*pcVar23)(3,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(3,pbVar14,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar14") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar19) {\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" (if "if") (parenthesized_expression "(-1 < iVar19)" (( "(") (binary_expression "-1 < iVar19" (number_literal "-1") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n        piVar10 = (int *)0x0;\n        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;\n        pbVar4 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);\n        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);\n        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);\n        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar6 = *(byte **)(puVar8 + -0xe8);\n        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);\n        if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar6 = pbVar4;\n        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);\n        iVar19 = *(int *)(puVar8 + -0x110);\n        if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }\n        (**(code **)(iVar3 + -0x7d68))(pbVar4);\n        pcVar24 = *(code **)(puVar8 + -0x110);\n        pbVar14 = pbVar6;\n        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;\n        pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" ({ "{") (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" (identifier "piVar10") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar3 + iVar5 + -1" (binary_expression "iVar3 + iVar5" (identifier "iVar3") (+ "+") (identifier "iVar5")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar4 = (byte *)0xffffff9c;" (assignment_expression "pbVar4 = (byte *)0xffffff9c" (identifier "pbVar4") (= "=") (cast_expression "(byte *)0xffffff9c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff9c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xec)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xec)" (( "(") (binary_expression "puVar8 + -0xec" (identifier "puVar8") (+ "+") (number_literal "-0xec")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd0)" (( "(") (binary_expression "puVar8 + -0xd0" (identifier "puVar8") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xe4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe4)" (( "(") (binary_expression "puVar8 + -0xe4" (identifier "puVar8") (+ "+") (number_literal "-0xe4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xc0)" (( "(") (binary_expression "puVar8 + -0xc0" (identifier "puVar8") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xdc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xdc)" (( "(") (binary_expression "puVar8 + -0xdc" (identifier "puVar8") (+ "+") (number_literal "-0xdc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xbc)" (( "(") (binary_expression "puVar8 + -0xbc" (identifier "puVar8") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar8 + -0xe8)" (* "*") (cast_expression "(int *)(puVar8 + -0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe8)" (( "(") (binary_expression "puVar8 + -0xe8" (identifier "puVar8") (+ "+") (number_literal "-0xe8")) () ")")))) (= "=") (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(iVar25 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar25 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + -0x7fc8)" (( "(") (binary_expression "iVar25 + -0x7fc8" (identifier "iVar25") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6630"))) (; ";")) (labeled_statement "LAB_0002ce58:\n        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" (statement_identifier "LAB_0002ce58") (: ":") (if_statement "if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))) {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" (if "if") (parenthesized_expression "((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4)))" (( "(") (binary_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&\n           (iVar29 == *(int *)(puVar8 + -0xe4))" (parenthesized_expression "(*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec))" (( "(") (binary_expression "*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)" (pointer_expression "*(int *)(puVar8 + -0x104)" (* "*") (cast_expression "(int *)(puVar8 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar8 + -0xec)" (* "*") (cast_expression "(int *)(puVar8 + -0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xec)" (( "(") (binary_expression "puVar8 + -0xec" (identifier "puVar8") (+ "+") (number_literal "-0xec")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar29 == *(int *)(puVar8 + -0xe4))" (( "(") (binary_expression "iVar29 == *(int *)(puVar8 + -0xe4)" (identifier "iVar29") (== "==") (pointer_expression "*(int *)(puVar8 + -0xe4)" (* "*") (cast_expression "(int *)(puVar8 + -0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe4)" (( "(") (binary_expression "puVar8 + -0xe4" (identifier "puVar8") (+ "+") (number_literal "-0xe4")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }\n        }" ({ "{") (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7cac)" (* "*") (cast_expression "(code **)(iVar25 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cac)" (( "(") (binary_expression "iVar25 + -0x7cac" (identifier "iVar25") (+ "+") (number_literal "-0x7cac")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc))" (( "(") (binary_expression "*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)" (pointer_expression "*(int *)(puVar8 + -0xfc)" (* "*") (cast_expression "(int *)(puVar8 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xfc)" (( "(") (binary_expression "puVar8 + -0xfc" (identifier "puVar8") (+ "+") (number_literal "-0xfc")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar8 + -0xdc)" (* "*") (cast_expression "(int *)(puVar8 + -0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xdc)" (( "(") (binary_expression "puVar8 + -0xdc" (identifier "puVar8") (+ "+") (number_literal "-0xdc")) () ")"))))) () ")")) (compound_statement "{\n            if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }\n            iVar3 = *(int *)(puVar8 + -0xe0);\n            if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }\n            pbVar14 = *(byte **)(puVar8 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n            if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }\n            iVar3 = *(int *)(puVar8 + -0x100);\n            if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }\n            *(int *)(puVar8 + -0x108) = iVar3;\n            goto LAB_0002d158;\n          }" ({ "{") (if_statement "if (piVar10 != (int *)0x0) {\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);\n              iVar25 = *(int *)(puVar8 + -0x110);\n              if (iVar3 != 0) goto LAB_0002d19c;\n            }" ({ "{") (expression_statement "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar25 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar25 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7d6c)" (( "(") (binary_expression "iVar25 + -0x7d6c" (identifier "iVar25") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_0002d19c;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d19c;" (goto "goto") (statement_identifier "LAB_0002d19c") (; ";"))) (} "}"))) (expression_statement "iVar3 = *(int *)(puVar8 + -0xe0);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0xe0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1)" (( "(") (binary_expression "*(int *)(puVar8 + -0xe0) ==\n                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (== "==") (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1" (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar8 + -0xf8)" (* "*") (cast_expression "(int *)(puVar8 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")"))))) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);\n              *(undefined1 *)(iVar3 + -1) = 0x2f;\n            }" ({ "{") (expression_statement "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);" (assignment_expression "*(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1)" (pointer_expression "*(undefined1 **)(puVar8 + -0xe0)" (* "*") (cast_expression "(undefined1 **)(puVar8 + -0xe0)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (cast_expression "(undefined1 *)(iVar3 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -1)" (( "(") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar3 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -1)" (( "(") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (} "}"))) (expression_statement "pbVar14 = *(byte **)(puVar8 + -0xe0);" (assignment_expression "pbVar14 = *(byte **)(puVar8 + -0xe0)" (identifier "pbVar14") (= "=") (pointer_expression "*(byte **)(puVar8 + -0xe0)" (* "*") (cast_expression "(byte **)(puVar8 + -0xe0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")"))))) (; ";")) (expression_statement "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              );" (assignment_expression "pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" (identifier "pbVar18") (= "=") (cast_expression "(byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14\n                              )" (( "(") (binary_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14" (parenthesized_expression "(*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8))" (( "(") (binary_expression "*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)" (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar8 + -0xf8)" (* "*") (cast_expression "(int *)(puVar8 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")"))))) () ")")) (- "-") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14"))) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar25 + -0x7bd0))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7bd0)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7bd0)" (* "*") (cast_expression "(code **)(iVar25 + -0x7bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7bd0)" (( "(") (binary_expression "iVar25 + -0x7bd0" (identifier "iVar25") (+ "+") (number_literal "-0x7bd0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar8 + -0x108),pbVar14,pbVar18)" (( "(") (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (, ",") (identifier "pbVar14") (, ",") (identifier "pbVar18") () ")"))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + 4) == 0) {\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + 4) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + 4) == 0" (pointer_expression "*(int *)(puVar8 + 4)" (* "*") (cast_expression "(int *)(puVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar14 = pbVar18;\n              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));\n              pcVar24 = *(code **)(puVar8 + -0x110);\n              *(undefined4 *)(puVar8 + -0x100) = uVar31;\n            }" ({ "{") (expression_statement "pbVar14 = pbVar18;" (assignment_expression "pbVar14 = pbVar18" (identifier "pbVar14") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" (identifier "uVar31") (= "=") (call_expression "(**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(**(code **)(pcVar24 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcVar24 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcVar24 + -0x7c78)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7c78)" (( "(") (binary_expression "pcVar24 + -0x7c78" (identifier "pcVar24") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(puVar8 + -0x100);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x100)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar3 = *(int *)(puVar8 + -0x108);\n            }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar8 + -0x108);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x108)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar8 + -0x108) = iVar3;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar3" (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (goto_statement "goto LAB_0002d158;" (goto "goto") (statement_identifier "LAB_0002d158") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" (else "else") (compound_statement "{\n          pcVar23 = *(code **)(iVar25 + -0x7cac);\n        }" ({ "{") (expression_statement "pcVar23 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar23 = *(code **)(iVar25 + -0x7cac)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar25 + -0x7cac)" (* "*") (cast_expression "(code **)(iVar25 + -0x7cac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cac)" (( "(") (binary_expression "iVar25 + -0x7cac" (identifier "iVar25") (+ "+") (number_literal "-0x7cac")) () ")"))))) (; ";")) (} "}"))))) (expression_statement "pbVar6 = *(byte **)(puVar8 + -0xe8);" (assignment_expression "pbVar6 = *(byte **)(puVar8 + -0xe8)" (identifier "pbVar6") (= "=") (pointer_expression "*(byte **)(puVar8 + -0xe8)" (* "*") (cast_expression "(byte **)(puVar8 + -0xe8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xe8)" (( "(") (binary_expression "puVar8 + -0xe8" (identifier "puVar8") (+ "+") (number_literal "-0xe8")) () ")"))))) (; ";")) (expression_statement "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);" (assignment_expression "pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0)" (identifier "pbVar4") (= "=") (cast_expression "(byte *)(*pcVar23)(pbVar4,pbVar6,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar23)(pbVar4,pbVar6,0)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(pbVar4,pbVar6,0)" (( "(") (identifier "pbVar4") (, ",") (identifier "pbVar6") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((int)pbVar4 < 0) {\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" (if "if") (parenthesized_expression "((int)pbVar4 < 0)" (( "(") (binary_expression "(int)pbVar4 < 0" (cast_expression "(int)pbVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }\n          pcVar23 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar14 = pbVar6;\n          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" ({ "{") (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";")) (if_statement "if (piVar10 != (int *)0x0) {\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar23 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar23)(piVar10);\n            pcVar24 = *(code **)(puVar8 + -0x110);\n          }" ({ "{") (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7d6c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7d6c)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7d6c)" (( "(") (binary_expression "pcVar24 + -0x7d6c" (identifier "pcVar24") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d138:\n            (*pcVar23)(piVar10);" (statement_identifier "LAB_0002d138") (: ":") (expression_statement "(*pcVar23)(piVar10);" (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";"))) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7bd8)" (( "(") (binary_expression "pcVar24 + -0x7bd8" (identifier "pcVar24") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" (identifier "pbVar14") (= "=") (identifier "pbVar6")) (; ";")) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d1e4;" (goto "goto") (statement_identifier "LAB_0002d1e4") (; ";"))) (goto_statement "goto LAB_0002d150;" (goto "goto") (statement_identifier "LAB_0002d150") (; ";")) (} "}"))) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" (identifier "pbVar6") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);" (assignment_expression "iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7c40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7c40)" (( "(") (binary_expression "*(int *)(puVar8 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7c40")) () ")"))))) () ")")) (argument_list "(3,pbVar4,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar4") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }\n        else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);\n          iVar19 = *(int *)(puVar8 + -0x110);\n          if (iVar3 == 0) goto LAB_0002cec4;\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;\n        }" ({ "{") (if_statement "if (piVar10 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);\n            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);\n            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);\n            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);\n            piVar10 = (int *)(*pcVar23)(pbVar4);\n            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();\n            iVar3 = *(int *)(puVar8 + -0x110);\n            if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" ({ "{") (labeled_statement "LAB_0002cec4:\n            pcVar23 = *(code **)(iVar19 + -0x7d1c);" (statement_identifier "LAB_0002cec4") (: ":") (expression_statement "pcVar23 = *(code **)(iVar19 + -0x7d1c);" (assignment_expression "pcVar23 = *(code **)(iVar19 + -0x7d1c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar19 + -0x7d1c)" (* "*") (cast_expression "(code **)(iVar19 + -0x7d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7d1c)" (( "(") (binary_expression "iVar19 + -0x7d1c" (identifier "iVar19") (+ "+") (number_literal "-0x7d1c")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf0)" (( "(") (binary_expression "puVar8 + -0xf0" (identifier "puVar8") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd0)" (( "(") (binary_expression "puVar8 + -0xd0" (identifier "puVar8") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd8)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd8)" (( "(") (binary_expression "puVar8 + -0xd8" (identifier "puVar8") (+ "+") (number_literal "-0xd8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xc0)" (( "(") (binary_expression "puVar8 + -0xc0" (identifier "puVar8") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd4)" (( "(") (binary_expression "puVar8 + -0xd4" (identifier "puVar8") (+ "+") (number_literal "-0xd4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xbc)" (( "(") (binary_expression "puVar8 + -0xbc" (identifier "puVar8") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "piVar10 = (int *)(*pcVar23)(pbVar4);" (assignment_expression "piVar10 = (int *)(*pcVar23)(pbVar4)" (identifier "piVar10") (= "=") (cast_expression "(int *)(*pcVar23)(pbVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar23)(pbVar4)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")"))))) (; ";")) (expression_statement "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar8 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar10 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);\nLAB_0002cf18:\n              pbVar27[0] = 0;\n              pbVar27[1] = 0;\n              pbVar27[2] = 0;\n              pbVar27[3] = 0;\n              piVar13 = (int *)(*pcVar23)(piVar10);\n              iVar3 = *(int *)(puVar8 + -0x110);\n              if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_0002cf10:\n              pcVar23 = *(code **)(iVar3 + -0x7d38);" (statement_identifier "LAB_0002cf10") (: ":") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d38)" (( "(") (binary_expression "iVar3 + -0x7d38" (identifier "iVar3") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002cf18:\n              pbVar27[0] = 0;" (statement_identifier "LAB_0002cf18") (: ":") (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" (identifier "pbVar27") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" (identifier "pbVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[3] = 0;" (assignment_expression "pbVar27[3] = 0" (subscript_expression "pbVar27[3]" (identifier "pbVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar13 = (int *)(*pcVar23)(piVar10);" (assignment_expression "piVar13 = (int *)(*pcVar23)(piVar10)" (identifier "piVar13") (= "=") (cast_expression "(int *)(*pcVar23)(piVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar23)(piVar10)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar13 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" (if "if") (parenthesized_expression "(piVar13 == (int *)0x0)" (( "(") (binary_expression "piVar13 == (int *)0x0" (identifier "piVar13") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbVar18 = *(byte **)pbVar27;\n                pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" ({ "{") (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d6c)" (( "(") (binary_expression "iVar3 + -0x7d6c" (identifier "iVar3") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (if_statement "if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" (if "if") (parenthesized_expression "(pbVar18 == (byte *)0x0)" (( "(") (binary_expression "pbVar18 == (byte *)0x0" (identifier "pbVar18") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar3 + -0x7d90))(piVar10);\n                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);\n                  iVar3 = *(int *)(puVar8 + -0x110);\n                  if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar27;\n                  pcVar23 = *(code **)(iVar3 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" ({ "{") (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar27[0] = 0;\n                    pbVar27[1] = 0;\n                    pbVar27[2] = 0;\n                    pbVar27[3] = 2;\n                    goto LAB_0002d134;\n                  }" ({ "{") (labeled_statement "LAB_0002d128:\n                    pbVar18 = (byte *)0x2;" (statement_identifier "LAB_0002d128") (: ":") (expression_statement "pbVar18 = (byte *)0x2;" (assignment_expression "pbVar18 = (byte *)0x2" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";"))) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" (identifier "pbVar27") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" (identifier "pbVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[3] = 2;" (assignment_expression "pbVar27[3] = 2" (subscript_expression "pbVar27[3]" (identifier "pbVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0002d134;" (goto "goto") (statement_identifier "LAB_0002d134") (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar3 + -0x7d90))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d90))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d90))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7d90)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7d90)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d90)" (( "(") (binary_expression "iVar3 + -0x7d90" (identifier "iVar3") (+ "+") (number_literal "-0x7d90")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);" (assignment_expression "piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" (identifier "piVar13") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x110) + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x110) + -0x7d38)" (( "(") (binary_expression "*(int *)(puVar8 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7d38")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar13 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" (if "if") (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    bVar1 = false;\n                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;" (if "if") (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) == '.')" (( "(") (binary_expression "*(char *)((int)piVar13 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar13 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x13)" (( "(") (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x13")) () ")")))) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0002d0e0;" (goto "goto") (statement_identifier "LAB_0002d0e0") (; ";"))) (goto_statement "goto LAB_0002cf58;" (goto "goto") (statement_identifier "LAB_0002cf58") (; ";")) (} "}"))) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d6c)" (( "(") (binary_expression "iVar3 + -0x7d6c" (identifier "iVar3") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (if_statement "if (pbVar18 == (byte *)0x0) goto LAB_0002d128;" (if "if") (parenthesized_expression "(pbVar18 == (byte *)0x0)" (( "(") (binary_expression "pbVar18 == (byte *)0x0" (identifier "pbVar18") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002d128;" (goto "goto") (statement_identifier "LAB_0002d128") (; ";"))) (} "}"))) (goto_statement "goto LAB_0002d138;" (goto "goto") (statement_identifier "LAB_0002d138") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;" (if "if") (parenthesized_expression "(*(char *)((int)piVar13 + 0x13) != '.')" (( "(") (binary_expression "*(char *)((int)piVar13 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar13 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar13 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x13)" (( "(") (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0002cf34;" (goto "goto") (statement_identifier "LAB_0002cf34") (; ";"))) (labeled_statement "LAB_0002d0e0:\n              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" (statement_identifier "LAB_0002d0e0") (: ":") (if_statement "if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;" (if "if") (parenthesized_expression "(*(char *)(piVar13 + 5) != '\0')" (( "(") (binary_expression "*(char *)(piVar13 + 5) != '\0'" (pointer_expression "*(char *)(piVar13 + 5)" (* "*") (cast_expression "(char *)(piVar13 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar13 + 5)" (( "(") (binary_expression "piVar13 + 5" (identifier "piVar13") (+ "+") (number_literal "5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x0002d0ec;" (goto "goto") (statement_identifier "code_r0x0002d0ec") (; ";")))) (goto_statement "goto LAB_0002cf10;" (goto "goto") (statement_identifier "LAB_0002cf10") (; ";")) (} "}"))) (goto_statement "goto LAB_0002d208;" (goto "goto") (statement_identifier "LAB_0002d208") (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);" (assignment_expression "iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar19 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar19 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar19 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7d6c)" (( "(") (binary_expression "iVar19 + -0x7d6c" (identifier "iVar19") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x110)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0002cec4;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cec4;" (goto "goto") (statement_identifier "LAB_0002cec4") (; ";"))) (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar19 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7cc8)" (( "(") (binary_expression "iVar19 + -0x7cc8" (identifier "iVar19") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d208:\n          pbVar18 = *(byte **)pbVar27;" (statement_identifier "LAB_0002d208") (: ":") (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";"))) (} "}")) (else_clause "else {\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" (else "else") (compound_statement "{\n          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();\n          iVar3 = *(int *)(puVar8 + -0x110);\n          pbVar18 = *(byte **)pbVar27;\n          if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }\n        }" ({ "{") (expression_statement "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))()" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(**(code **)(iVar19 + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar19 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7cc8)" (( "(") (binary_expression "iVar19 + -0x7cc8" (identifier "iVar19") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";")) (if_statement "if (piVar10 != (int *)0x0) {\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(iVar3 + -0x7d6c))(piVar10);\n            iVar3 = *(int *)(puVar8 + -0x110);\n          }" ({ "{") (expression_statement "(**(code **)(iVar3 + -0x7d6c))(piVar10);" (call_expression "(**(code **)(iVar3 + -0x7d6c))(piVar10)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d6c)" (( "(") (binary_expression "iVar3 + -0x7d6c" (identifier "iVar3") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(piVar10)" (( "(") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(iVar3 + -0x7d68))(pbVar4);" (call_expression "(**(code **)(iVar3 + -0x7d68))(pbVar4)" (parenthesized_expression "(**(code **)(iVar3 + -0x7d68))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7d68)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7d68)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d68)" (( "(") (binary_expression "iVar3 + -0x7d68" (identifier "iVar3") (+ "+") (number_literal "-0x7d68")) () ")"))))) () ")")) (argument_list "(pbVar4)" (( "(") (identifier "pbVar4") () ")"))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar14 = pbVar6;" (assignment_expression "pbVar14 = pbVar6" (identifier "pbVar14") (= "=") (identifier "pbVar6")) (; ";")) (if_statement "if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0x100) != 0)" (( "(") (binary_expression "*(int *)(puVar8 + -0x100) != 0" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d150;" (goto "goto") (statement_identifier "LAB_0002d150") (; ";"))) (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7bd8)" (( "(") (binary_expression "pcVar24 + -0x7bd8" (identifier "pcVar24") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002d1e4;" (goto "goto") (statement_identifier "LAB_0002d1e4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002d19c:\n    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (statement_identifier "LAB_0002d19c") (: ":") (expression_statement "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))()" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(**(code **)(iVar25 + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar25 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar25 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar25 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar25 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar25 + -0x7cc8)" (( "(") (binary_expression "iVar25 + -0x7cc8" (identifier "iVar25") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "pbVar18 = *(byte **)pbVar27;" (assignment_expression "pbVar18 = *(byte **)pbVar27" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27")))) (; ";")) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + -0x100) == 0) {\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar8 + -0x100) == 0" (pointer_expression "*(int *)(puVar8 + -0x100)" (* "*") (cast_expression "(int *)(puVar8 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x100)" (( "(") (binary_expression "puVar8 + -0x100" (identifier "puVar8") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar23 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n      pcVar24 = *(code **)(puVar8 + -0x110);\n    }" ({ "{") (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7bd8)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7bd8)" (( "(") (binary_expression "pcVar24 + -0x7bd8" (identifier "pcVar24") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d1e4:\n      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (statement_identifier "LAB_0002d1e4") (: ":") (expression_statement "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) () ")"))) (; ";"))) (expression_statement "pcVar24 = *(code **)(puVar8 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar8 + -0x110)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar8 + -0x110)" (* "*") (cast_expression "(code **)(puVar8 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar27 = pbVar18;" (statement_identifier "LAB_0002d150") (: ":") (expression_statement "*(byte **)pbVar27 = pbVar18;" (assignment_expression "*(byte **)pbVar27 = pbVar18" (pointer_expression "*(byte **)pbVar27" (* "*") (cast_expression "(byte **)pbVar27" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar27"))) (= "=") (identifier "pbVar18")) (; ";"))) (expression_statement "*(undefined4 *)(puVar8 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar8 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002d158:\n  piVar13 = *(int **)(puVar8 + -0xf4);" (statement_identifier "LAB_0002d158") (: ":") (expression_statement "piVar13 = *(int **)(puVar8 + -0xf4);" (assignment_expression "piVar13 = *(int **)(puVar8 + -0xf4)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(puVar8 + -0xf4)" (* "*") (cast_expression "(int **)(puVar8 + -0xf4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xf4)" (( "(") (binary_expression "puVar8 + -0xf4" (identifier "puVar8") (+ "+") (number_literal "-0xf4")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002d15c:\n  pbVar4 = *(byte **)(puVar8 + -0x2c);" (statement_identifier "LAB_0002d15c") (: ":") (expression_statement "pbVar4 = *(byte **)(puVar8 + -0x2c);" (assignment_expression "pbVar4 = *(byte **)(puVar8 + -0x2c)" (identifier "pbVar4") (= "=") (pointer_expression "*(byte **)(puVar8 + -0x2c)" (* "*") (cast_expression "(byte **)(puVar8 + -0x2c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x2c)" (( "(") (binary_expression "puVar8 + -0x2c" (identifier "puVar8") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (pbVar4 != (byte *)*piVar13) {\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" (if "if") (parenthesized_expression "(pbVar4 != (byte *)*piVar13)" (( "(") (binary_expression "pbVar4 != (byte *)*piVar13" (identifier "pbVar4") (!= "!=") (cast_expression "(byte *)*piVar13" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) () ")")) (compound_statement "{\n    pcVar23 = *(code **)(pcVar24 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar23)();\n    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;\n    *(undefined4 *)(puVar8 + -300) = uVar31;\n    *(byte **)(puVar8 + -0x130) = pbVar27;\n    *(int **)(puVar8 + -0x134) = piVar10;\n    *(byte **)(puVar8 + -0x138) = pbVar18;\n    if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }\n    return pbVar4;\n  }" ({ "{") (expression_statement "pcVar23 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar23 = *(code **)(pcVar24 + -0x7c10)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar24 + -0x7c10)" (* "*") (cast_expression "(code **)(pcVar24 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + -0x7c10)" (( "(") (binary_expression "pcVar24 + -0x7c10" (identifier "pcVar24") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" (identifier "uVar31") (= "=") (number_literal "0x2d36c")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;" (assignment_expression "*(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70" (pointer_expression "*(code **)(puVar8 + -0x140)" (* "*") (cast_expression "(code **)(puVar8 + -0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x140)" (( "(") (binary_expression "puVar8 + -0x140" (identifier "puVar8") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "pcVar23 + 0x23e70" (identifier "pcVar23") (+ "+") (number_literal "0x23e70"))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -300)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -300)" (( "(") (binary_expression "puVar8 + -300" (identifier "puVar8") (+ "+") (number_literal "-300")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x130) = pbVar27;" (assignment_expression "*(byte **)(puVar8 + -0x130) = pbVar27" (pointer_expression "*(byte **)(puVar8 + -0x130)" (* "*") (cast_expression "(byte **)(puVar8 + -0x130)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x130)" (( "(") (binary_expression "puVar8 + -0x130" (identifier "puVar8") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "*(int **)(puVar8 + -0x134) = piVar10;" (assignment_expression "*(int **)(puVar8 + -0x134) = piVar10" (pointer_expression "*(int **)(puVar8 + -0x134)" (* "*") (cast_expression "(int **)(puVar8 + -0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x134)" (( "(") (binary_expression "puVar8 + -0x134" (identifier "puVar8") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(byte **)(puVar8 + -0x138) = pbVar18;" (assignment_expression "*(byte **)(puVar8 + -0x138) = pbVar18" (pointer_expression "*(byte **)(puVar8 + -0x138)" (* "*") (cast_expression "(byte **)(puVar8 + -0x138)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x138)" (( "(") (binary_expression "puVar8 + -0x138" (identifier "puVar8") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (pbVar4 == (byte *)0x0) {\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }\n    else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0x0)" (( "(") (binary_expression "pbVar4 == (byte *)0x0" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar4 = (byte *)0xffffffff;\n      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();\n      *puVar16 = 0x7a;\n    }" ({ "{") (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" (identifier "pbVar4") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();" (assignment_expression "puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar23 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c1a8))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x1c1a8)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x1c1a8)" (* "*") (cast_expression "(code **)(pcVar23 + 0x1c1a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1c1a8)" (( "(") (binary_expression "pcVar23 + 0x1c1a8" (identifier "pcVar23") (+ "+") (number_literal "0x1c1a8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar16 = 0x7a;" (assignment_expression "*puVar16 = 0x7a" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0x7a")) (; ";")) (} "}")) (else_clause "else if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" (else "else") (if_statement "if (pbVar4 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" (if "if") (parenthesized_expression "(pbVar4 == (byte *)0xa)" (( "(") (binary_expression "pbVar4 == (byte *)0xa" (identifier "pbVar4") (== "==") (cast_expression "(byte *)0xa" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar14;\n      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);\n      if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }\n    }" ({ "{") (expression_statement "uVar31 = *(undefined4 *)pbVar14;" (assignment_expression "uVar31 = *(undefined4 *)pbVar14" (identifier "uVar31") (= "=") (pointer_expression "*(undefined4 *)pbVar14" (* "*") (cast_expression "(undefined4 *)pbVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar23 + 0x1c2c8))" (( "(") (pointer_expression "**(code **)(pcVar23 + 0x1c2c8)" (* "*") (pointer_expression "*(code **)(pcVar23 + 0x1c2c8)" (* "*") (cast_expression "(code **)(pcVar23 + 0x1c2c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x1c2c8)" (( "(") (binary_expression "pcVar23 + 0x1c2c8" (identifier "pcVar23") (+ "+") (number_literal "0x1c2c8")) () ")"))))) () ")")) (argument_list "(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68)" (( "(") (identifier "uVar31") (, ",") (binary_expression "*(int *)(pcVar23 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar23 + 0x1bea8)" (* "*") (cast_expression "(int *)(pcVar23 + 0x1bea8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x1bea8)" (( "(") (binary_expression "pcVar23 + 0x1bea8" (identifier "pcVar23") (+ "+") (number_literal "0x1bea8")) () ")")))) (+ "+") (number_literal "0x3e68")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pbVar4 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);\n        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);\n        pbVar14[0] = 0;\n        pbVar14[1] = 0;\n        pbVar14[2] = 0;\n        pbVar14[3] = 0;\n        puVar16 = (undefined4 *)(*pcVar23)();\n        *puVar16 = 0x3d;\n      }" ({ "{") (expression_statement "pbVar4 = (byte *)0xffffffff;" (assignment_expression "pbVar4 = (byte *)0xffffffff" (identifier "pbVar4") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7d34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7d34)" (( "(") (binary_expression "*(int *)(puVar8 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar8 + -0x140)" (* "*") (cast_expression "(int *)(puVar8 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x140)" (( "(") (binary_expression "puVar8 + -0x140" (identifier "puVar8") (+ "+") (number_literal "-0x140")) () ")")))) (+ "+") (number_literal "-0x7d34")) () ")"))))) () ")")) (argument_list "(uVar31)" (( "(") (identifier "uVar31") () ")"))) (; ";")) (expression_statement "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);" (assignment_expression "pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0x140) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar8 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar8 + -0x140)" (* "*") (cast_expression "(int *)(puVar8 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x140)" (( "(") (binary_expression "puVar8 + -0x140" (identifier "puVar8") (+ "+") (number_literal "-0x140")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) (; ";")) (expression_statement "pbVar14[0] = 0;" (assignment_expression "pbVar14[0] = 0" (subscript_expression "pbVar14[0]" (identifier "pbVar14") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar14[1] = 0;" (assignment_expression "pbVar14[1] = 0" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar14[2] = 0;" (assignment_expression "pbVar14[2] = 0" (subscript_expression "pbVar14[2]" (identifier "pbVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar14[3] = 0;" (assignment_expression "pbVar14[3] = 0" (subscript_expression "pbVar14[3]" (identifier "pbVar14") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar16 = (undefined4 *)(*pcVar23)();" (assignment_expression "puVar16 = (undefined4 *)(*pcVar23)()" (identifier "puVar16") (= "=") (cast_expression "(undefined4 *)(*pcVar23)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar16 = 0x3d;" (assignment_expression "*puVar16 = 0x3d" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (number_literal "0x3d")) (; ";")) (} "}"))) (} "}"))))) (return_statement "return pbVar4;" (return "return") (identifier "pbVar4") (; ";")) (} "}"))) (return_statement "return *(byte **)(puVar8 + -0x108);" (return "return") (pointer_expression "*(byte **)(puVar8 + -0x108)" (* "*") (cast_expression "(byte **)(puVar8 + -0x108)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (; ";")) (labeled_statement "code_r0x0002d0ec:\n  pcVar23 = *(code **)(iVar3 + -0x7d38);" (statement_identifier "code_r0x0002d0ec") (: ":") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d38)" (( "(") (binary_expression "iVar3 + -0x7d38" (identifier "iVar3") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";"))) (if_statement "if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" (if "if") (parenthesized_expression "((piVar13[5] & 0xffff0000U) == 0x2e000000)" (( "(") (binary_expression "(piVar13[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar13[5] & 0xffff0000U)" (( "(") (binary_expression "piVar13[5] & 0xffff0000U" (subscript_expression "piVar13[5]" (identifier "piVar13") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0xffff0000U")) () ")")) (== "==") (number_literal "0x2e000000")) () ")")) (goto_statement "goto LAB_0002cf18;" (goto "goto") (statement_identifier "LAB_0002cf18") (; ";"))) (labeled_statement "LAB_0002cf34:\n  pcVar23 = *(code **)(iVar3 + -0x7c30);" (statement_identifier "LAB_0002cf34") (: ":") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar3 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7c30)" (( "(") (binary_expression "iVar3 + -0x7c30" (identifier "iVar3") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";"))) (if_statement "if (bVar1) {\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }\n    pcVar23 = *(code **)(iVar3 + -0x7d38);\n    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);\n  }" ({ "{") (if_statement "if (*piVar13 == iVar29) {\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" (if "if") (parenthesized_expression "(*piVar13 == iVar29)" (( "(") (binary_expression "*piVar13 == iVar29" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (== "==") (identifier "iVar29")) () ")")) (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" ({ "{") (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar8 + -0x104)" (* "*") (cast_expression "(int *)(puVar8 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (if_statement "if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" (if "if") (parenthesized_expression "(piVar13[1] == *(int *)(puVar8 + -0xfc))" (( "(") (binary_expression "piVar13[1] == *(int *)(puVar8 + -0xfc)" (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]")) (== "==") (pointer_expression "*(int *)(puVar8 + -0xfc)" (* "*") (cast_expression "(int *)(puVar8 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xfc)" (( "(") (binary_expression "puVar8 + -0xfc" (identifier "puVar8") (+ "+") (number_literal "-0xfc")) () ")"))))) () ")")) (compound_statement "{\n        pcVar23 = *(code **)(iVar3 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" ({ "{") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar3 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7c30)" (( "(") (binary_expression "iVar3 + -0x7c30" (identifier "iVar3") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002cf5c;" (goto "goto") (statement_identifier "LAB_0002cf5c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" (else "else") (compound_statement "{\n      iVar19 = *(int *)(puVar8 + -0x104);\n    }" ({ "{") (expression_statement "iVar19 = *(int *)(puVar8 + -0x104);" (assignment_expression "iVar19 = *(int *)(puVar8 + -0x104)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar8 + -0x104)" (* "*") (cast_expression "(int *)(puVar8 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d38)" (( "(") (binary_expression "iVar3 + -0x7d38" (identifier "iVar3") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (if_statement "if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;" (if "if") (parenthesized_expression "(iVar19 == *(int *)(puVar8 + -0xf0))" (( "(") (binary_expression "iVar19 == *(int *)(puVar8 + -0xf0)" (identifier "iVar19") (== "==") (pointer_expression "*(int *)(puVar8 + -0xf0)" (* "*") (cast_expression "(int *)(puVar8 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf0)" (( "(") (binary_expression "puVar8 + -0xf0" (identifier "puVar8") (+ "+") (number_literal "-0xf0")) () ")"))))) () ")")) (goto_statement "goto LAB_0002cf18;" (goto "goto") (statement_identifier "LAB_0002cf18") (; ";"))) (labeled_statement "LAB_0002cf58:\n    pcVar23 = *(code **)(iVar3 + -0x7c30);" (statement_identifier "LAB_0002cf58") (: ":") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c30);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c30)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar3 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7c30)" (( "(") (binary_expression "iVar3 + -0x7c30" (identifier "iVar3") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";"))) (} "}"))) (labeled_statement "LAB_0002cf5c:\n  pbVar14 = (byte *)((int)piVar13 + 0x13);" (statement_identifier "LAB_0002cf5c") (: ":") (expression_statement "pbVar14 = (byte *)((int)piVar13 + 0x13);" (assignment_expression "pbVar14 = (byte *)((int)piVar13 + 0x13)" (identifier "pbVar14") (= "=") (cast_expression "(byte *)((int)piVar13 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x13)" (( "(") (binary_expression "(int)piVar13 + 0x13" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x13")) () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(puVar8 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar8 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar8 + -0x118)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x118)" (( "(") (binary_expression "puVar8 + -0x118" (identifier "puVar8") (+ "+") (number_literal "-0x118")) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "pbVar6 = pbVar4;" (assignment_expression "pbVar6 = pbVar4" (identifier "pbVar6") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);" (assignment_expression "iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21)" (identifier "iVar19") (= "=") (call_expression "(*pcVar23)(3,pbVar4,pbVar14,puVar21)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(3,pbVar4,pbVar14,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar4") (, ",") (identifier "pbVar14") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar19 != 0) goto LAB_0002cf10;" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cf10;" (goto "goto") (statement_identifier "LAB_0002cf10") (; ";"))) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d38);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d38)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d38)" (( "(") (binary_expression "iVar3 + -0x7d38" (identifier "iVar3") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (if_statement "if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;" (if "if") (parenthesized_expression "(((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)))" (( "(") (binary_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29))" (( "(") (binary_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||\n      (*(int *)(puVar8 + -0xc0) != iVar29)" (parenthesized_expression "(((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)))" (( "(") (binary_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" (parenthesized_expression "((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000)" (( "(") (binary_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar8 + -0xb8) & 0xf000)" (( "(") (binary_expression "*(uint *)(puVar8 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar8 + -0xb8)" (* "*") (cast_expression "(uint *)(puVar8 + -0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xb8)" (( "(") (binary_expression "puVar8 + -0xb8" (identifier "puVar8") (+ "+") (number_literal "-0xb8")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))" (( "(") (binary_expression "*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104)" (pointer_expression "*(int *)(puVar8 + -0xd0)" (* "*") (cast_expression "(int *)(puVar8 + -0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd0)" (( "(") (binary_expression "puVar8 + -0xd0" (identifier "puVar8") (+ "+") (number_literal "-0xd0")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar8 + -0x104)" (* "*") (cast_expression "(int *)(puVar8 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar8 + -0xc0) != iVar29)" (( "(") (binary_expression "*(int *)(puVar8 + -0xc0) != iVar29" (pointer_expression "*(int *)(puVar8 + -0xc0)" (* "*") (cast_expression "(int *)(puVar8 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xc0)" (( "(") (binary_expression "puVar8 + -0xc0" (identifier "puVar8") (+ "+") (number_literal "-0xc0")) () ")")))) (!= "!=") (identifier "iVar29")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))" (( "(") (binary_expression "*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc)" (pointer_expression "*(int *)(puVar8 + -0xbc)" (* "*") (cast_expression "(int *)(puVar8 + -0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xbc)" (( "(") (binary_expression "puVar8 + -0xbc" (identifier "puVar8") (+ "+") (number_literal "-0xbc")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar8 + -0xfc)" (* "*") (cast_expression "(int *)(puVar8 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xfc)" (( "(") (binary_expression "puVar8 + -0xfc" (identifier "puVar8") (+ "+") (number_literal "-0xfc")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_0002cf18;" (goto "goto") (statement_identifier "LAB_0002cf18") (; ";"))) (expression_statement "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));" (assignment_expression "pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108))" (( "(") (binary_expression "*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108)" (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")"))))) () ")")))) (; ";")) (expression_statement "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);" (assignment_expression "pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar3 + -0x7ca4))(pbVar14)" (parenthesized_expression "(**(code **)(iVar3 + -0x7ca4))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7ca4)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7ca4)" (* "*") (cast_expression "(code **)(iVar3 + -0x7ca4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7ca4)" (( "(") (binary_expression "iVar3 + -0x7ca4" (identifier "iVar3") (+ "+") (number_literal "-0x7ca4")) () ")"))))) () ")")) (argument_list "(pbVar14)" (( "(") (identifier "pbVar14") () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (pbVar17 <= pbVar18) {\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" (if "if") (parenthesized_expression "(pbVar17 <= pbVar18)" (( "(") (binary_expression "pbVar17 <= pbVar18" (identifier "pbVar17") (<= "<=") (identifier "pbVar18")) () ")")) (compound_statement "{\n    pbVar28 = *(byte **)(puVar8 + -0xf8);\n    if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar20 = pbVar28;\n    if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }\n    pbVar11 = pbVar20 + (int)pbVar28;\n    pcVar23 = *(code **)(iVar3 + -0x7c78);\n    if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar8 + -0x104) = pbVar20;\n    pbVar6 = pbVar11;\n    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));\n    iVar3 = *(int *)(puVar8 + -0x110);\n    if (iVar19 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);\n    iVar3 = *(int *)(puVar8 + -0x110);\n    *(byte **)(puVar8 + -0xf8) = pbVar11;\n    *(undefined4 *)(puVar8 + -0xe0) = uVar31;\n    *(int *)(puVar8 + -0x108) = iVar19;\n  }" ({ "{") (expression_statement "pbVar28 = *(byte **)(puVar8 + -0xf8);" (assignment_expression "pbVar28 = *(byte **)(puVar8 + -0xf8)" (identifier "pbVar28") (= "=") (pointer_expression "*(byte **)(puVar8 + -0xf8)" (* "*") (cast_expression "(byte **)(puVar8 + -0xf8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar8 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar8 + 4) != 0)" (( "(") (binary_expression "*(int *)(puVar8 + 4) != 0" (pointer_expression "*(int *)(puVar8 + 4)" (* "*") (cast_expression "(int *)(puVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 4)" (( "(") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar18 = (byte *)0x22;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0x22;\n      goto LAB_0002d134;\n    }" ({ "{") (expression_statement "pbVar18 = (byte *)0x22;" (assignment_expression "pbVar18 = (byte *)0x22" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x22"))) (; ";")) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" (identifier "pbVar27") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" (identifier "pbVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[3] = 0x22;" (assignment_expression "pbVar27[3] = 0x22" (subscript_expression "pbVar27[3]" (identifier "pbVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x22")) (; ";")) (goto_statement "goto LAB_0002d134;" (goto "goto") (statement_identifier "LAB_0002d134") (; ";")) (} "}"))) (expression_statement "pbVar20 = pbVar28;" (assignment_expression "pbVar20 = pbVar28" (identifier "pbVar20") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (pbVar28 < pbVar18) {\n      pbVar20 = pbVar18;\n    }" (if "if") (parenthesized_expression "(pbVar28 < pbVar18)" (( "(") (binary_expression "pbVar28 < pbVar18" (identifier "pbVar28") (< "<") (identifier "pbVar18")) () ")")) (compound_statement "{\n      pbVar20 = pbVar18;\n    }" ({ "{") (expression_statement "pbVar20 = pbVar18;" (assignment_expression "pbVar20 = pbVar18" (identifier "pbVar20") (= "=") (identifier "pbVar18")) (; ";")) (} "}"))) (expression_statement "pbVar11 = pbVar20 + (int)pbVar28;" (assignment_expression "pbVar11 = pbVar20 + (int)pbVar28" (identifier "pbVar11") (= "=") (binary_expression "pbVar20 + (int)pbVar28" (identifier "pbVar20") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7c78);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7c78)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7c78)" (* "*") (cast_expression "(code **)(iVar3 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7c78)" (( "(") (binary_expression "iVar3 + -0x7c78" (identifier "iVar3") (+ "+") (number_literal "-0x7c78")) () ")"))))) (; ";")) (if_statement "if (pbVar11 < pbVar28) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" (if "if") (parenthesized_expression "(pbVar11 < pbVar28)" (( "(") (binary_expression "pbVar11 < pbVar28" (identifier "pbVar11") (< "<") (identifier "pbVar28")) () ")")) (compound_statement "{\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar27[0] = 0;\n      pbVar27[1] = 0;\n      pbVar27[2] = 0;\n      pbVar27[3] = 0xc;\nLAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);\n      goto LAB_0002d138;\n    }" ({ "{") (labeled_statement "LAB_0002d338:\n      pbVar18 = (byte *)0xc;" (statement_identifier "LAB_0002d338") (: ":") (expression_statement "pbVar18 = (byte *)0xc;" (assignment_expression "pbVar18 = (byte *)0xc" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0xc" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) (; ";"))) (expression_statement "pbVar27[0] = 0;" (assignment_expression "pbVar27[0] = 0" (subscript_expression "pbVar27[0]" (identifier "pbVar27") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[1] = 0;" (assignment_expression "pbVar27[1] = 0" (subscript_expression "pbVar27[1]" (identifier "pbVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[2] = 0;" (assignment_expression "pbVar27[2] = 0" (subscript_expression "pbVar27[2]" (identifier "pbVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar27[3] = 0xc;" (assignment_expression "pbVar27[3] = 0xc" (subscript_expression "pbVar27[3]" (identifier "pbVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (labeled_statement "LAB_0002d134:\n      pcVar23 = *(code **)(iVar3 + -0x7d6c);" (statement_identifier "LAB_0002d134") (: ":") (expression_statement "pcVar23 = *(code **)(iVar3 + -0x7d6c);" (assignment_expression "pcVar23 = *(code **)(iVar3 + -0x7d6c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(iVar3 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar3 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7d6c)" (( "(") (binary_expression "iVar3 + -0x7d6c" (identifier "iVar3") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0002d138;" (goto "goto") (statement_identifier "LAB_0002d138") (; ";")) (} "}"))) (expression_statement "*(byte **)(puVar8 + -0x104) = pbVar20;" (assignment_expression "*(byte **)(puVar8 + -0x104) = pbVar20" (pointer_expression "*(byte **)(puVar8 + -0x104)" (* "*") (cast_expression "(byte **)(puVar8 + -0x104)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "pbVar6 = pbVar11;" (assignment_expression "pbVar6 = pbVar11" (identifier "pbVar6") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));" (assignment_expression "iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (identifier "iVar19") (= "=") (call_expression "(*pcVar23)(*(undefined4 *)(puVar8 + -0x108))" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(*(undefined4 *)(puVar8 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar8 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar19 == 0) goto LAB_0002d338;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d338;" (goto "goto") (statement_identifier "LAB_0002d338") (; ";"))) (expression_statement "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);" (assignment_expression "uVar31 = (**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" (identifier "uVar31") (= "=") (call_expression "(**(code **)(iVar3 + -0x7be0))\n                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7be0)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7be0)" (* "*") (cast_expression "(code **)(iVar3 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7be0)" (( "(") (binary_expression "iVar3 + -0x7be0" (identifier "iVar3") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,\n                        *(int *)(puVar8 + -0xf8) - (int)pbVar17)" (( "(") (binary_expression "pbVar17 + iVar19 + *(int *)(puVar8 + -0x104)" (binary_expression "pbVar17 + iVar19" (identifier "pbVar17") (+ "+") (identifier "iVar19")) (+ "+") (pointer_expression "*(int *)(puVar8 + -0x104)" (* "*") (cast_expression "(int *)(puVar8 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")"))))) (, ",") (binary_expression "pbVar17 + iVar19" (identifier "pbVar17") (+ "+") (identifier "iVar19")) (, ",") (binary_expression "*(int *)(puVar8 + -0xf8) - (int)pbVar17" (pointer_expression "*(int *)(puVar8 + -0xf8)" (* "*") (cast_expression "(int *)(puVar8 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) (- "-") (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17"))) () ")")))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar3 = *(int *)(puVar8 + -0x110)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar8 + -0xf8) = pbVar11;" (assignment_expression "*(byte **)(puVar8 + -0xf8) = pbVar11" (pointer_expression "*(byte **)(puVar8 + -0xf8)" (* "*") (cast_expression "(byte **)(puVar8 + -0xf8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar8 + -0xf8)" (( "(") (binary_expression "puVar8 + -0xf8" (identifier "puVar8") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar8 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar8 + -0xe0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xe0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "*(int *)(puVar8 + -0x108) = iVar19;" (assignment_expression "*(int *)(puVar8 + -0x108) = iVar19" (pointer_expression "*(int *)(puVar8 + -0x108)" (* "*") (cast_expression "(int *)(puVar8 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x108)" (( "(") (binary_expression "puVar8 + -0x108" (identifier "puVar8") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);" (assignment_expression "iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" (parenthesized_expression "(**(code **)(iVar3 + -0x7be0))" (( "(") (pointer_expression "**(code **)(iVar3 + -0x7be0)" (* "*") (pointer_expression "*(code **)(iVar3 + -0x7be0)" (* "*") (cast_expression "(code **)(iVar3 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + -0x7be0)" (( "(") (binary_expression "iVar3 + -0x7be0" (identifier "iVar3") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18)" (( "(") (binary_expression "*(int *)(puVar8 + -0xe0) - (int)pbVar18" (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18"))) (, ",") (identifier "pbVar14") (, ",") (identifier "pbVar18") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar8 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar8 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar8 + -0x110)" (* "*") (cast_expression "(int *)(puVar8 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x110)" (( "(") (binary_expression "puVar8 + -0x110" (identifier "puVar8") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "iVar29 = *(int *)(puVar8 + -0xd8);" (assignment_expression "iVar29 = *(int *)(puVar8 + -0xd8)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(puVar8 + -0xd8)" (* "*") (cast_expression "(int *)(puVar8 + -0xd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd8)" (( "(") (binary_expression "puVar8 + -0xd8" (identifier "puVar8") (+ "+") (number_literal "-0xd8")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar8 + -0xe0) = iVar3 + -1;" (assignment_expression "*(int *)(puVar8 + -0xe0) = iVar3 + -1" (pointer_expression "*(int *)(puVar8 + -0xe0)" (* "*") (cast_expression "(int *)(puVar8 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xe0)" (( "(") (binary_expression "puVar8 + -0xe0" (identifier "puVar8") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined1 *)(iVar3 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar3 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar3 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar3 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -1)" (( "(") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar8 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xfc)" (( "(") (binary_expression "puVar8 + -0xfc" (identifier "puVar8") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xd4)" (( "(") (binary_expression "puVar8 + -0xd4" (identifier "puVar8") (+ "+") (number_literal "-0xd4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar8 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0x104)" (( "(") (binary_expression "puVar8 + -0x104" (identifier "puVar8") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar8 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar8 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + -0xf0)" (( "(") (binary_expression "puVar8 + -0xf0" (identifier "puVar8") (+ "+") (number_literal "-0xf0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002ce58;" (goto "goto") (statement_identifier "LAB_0002ce58") (; ";")) (} "}")))

int function_1(type_1 *var_3,type_1 *string,type_1 *var_7,type_2 no_leading_period,
                     int var_4)

{
  bool bVar1;
  type_3 *puVar2;
  int var_11;
  int var_9;
  type_4 var_16;
  type_5 var_14;
  type_6 *var_33;
  type_7 *puVar7;
  int *var_36;
  int *var_37;
  type_5 *var_32;
  type_1 wVar12;
  type_5 *var_17;
  type_8 in_register_0000001c;
  type_4 var_5;
  type_6 *puVar14;
  type_4 var_18;
  type_7 *puVar15;
  type_5 *var_24;
  type_5 *var_27;
  type_5 *var_29;
  type_1 *var_10;
  type_1 *var_8;
  type_5 *var_15;
  type_5 *unaff_s6;
  int var_2;
  type_5 *var_13;
  type_5 *var_25;
  type_6 *var_19;
  type_3 *var_6;
  type_9 *var_23;
  type_9 *var_26;
  int var_34;
  type_6 *puVar29;
  type_5 *var_28;
  int var_35;
  type_9 *pcVar32;
  type_7 uVar33;
  type_6 auStack_5f0 [24];
  type_3 *var_12;
  int *piStack_5d0;
  type_5 *var_20;
  int iStack_5c8;
  type_5 *pbStack_5c4;
  type_4 uStack_5c0;
  int *piStack_5bc;
  int var_21;
  type_5 *var_22;
  type_4 uStack_5b0;
  type_4 uStack_5ac;
  type_5 bStack_575;
  type_1 str [257];
  char s [257];
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  var_6 = PTR_LAB_00049218;
  var_27 = (type_5 *)var_1(in_register_0000001c,no_leading_period);
  var_11 = *(int *)PTR___stack_chk_guard_000495fc;
  var_2 = *var_3;
  var_29 = (type_5 *)var_7;
  var_8 = string;
  if (var_2 != 0) {
    var_10 = var_3 + 1;
    var_18 = var_4 & 2;
    var_5 = var_4 & 0x10;
    unaff_s6 = var_27;
    do {
      if (var_5 != 0) {
        var_2 = (*(type_9 *)PTR_towlower_000495f0)(var_2);
      }
      if (var_2 - 0x21U < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */
                    /* WARNING: Treating indirect jump as call */
        var_11 = (*(type_9 *)(&_gp + *(int *)(var_6 + (var_2 - 0x21U) * 4 + 0x7b00)))();
        return var_11;
      }
      if (var_7 == var_8) goto LAB_0002ad44;
      var_9 = *var_8;
      if (var_5 != 0) {
        var_9 = (*(type_9 *)PTR_towlower_000495f0)(var_9);
      }
      var_16 = 1;
      if (var_9 != var_2) goto LAB_0002ad48;
      unaff_s6 = (type_5 *)0x0;
      var_2 = *var_10;
      var_8 = var_8 + 1;
      var_10 = var_10 + 1;
    } while (var_2 != 0);
  }
  var_16 = 0;
  if (var_8 != var_7) {
    if ((var_4 & 8U) == 0) {
LAB_0002ad44:
      var_16 = 1;
    }
    else {
      var_16 = (type_4)(*var_8 != 0x2f);
    }
  }
LAB_0002ad48:
  if (var_11 == *(int *)puVar2) {
    return var_16;
  }
  var_6 = PTR___stack_chk_fail_000495d0;
  (*(type_9 *)PTR___stack_chk_fail_000495d0)();
  var_12 = var_6 + 0x25b40;
  var_19 = auStack_5f0;
  puVar15 = *(type_7 **)(var_6 + 0x1df5c);
  uStack_5c0 = (type_4)bStack_575;
  var_13 = (type_5 *)((int)string + 1);
  var_21 = 0;
  var_22 = (type_5 *)*puVar15;
  var_32 = (type_5 *)string;
  var_17 = var_29;
  pbStack_5c4 = var_27;
  uStack_5b0 = var_5;
  uStack_5ac = var_18;
  var_20 = (type_5 *)(**(type_9 **)(var_6 + 0x1de9c))(string);
  var_2 = (int)(char)*(type_5 *)((int)string + 1);
  var_6 = var_12;
  if (var_2 != 0) {
    var_10 = (type_1 *)0x0;
    var_7 = *(type_1 **)(var_12 + -0x7fd8);
    piStack_5bc = &var_21;
    var_18 = (type_4)(var_11 - 0x3fU < 2);
    iStack_5c8 = *(int *)(var_12 + -0x7fc8) + 0x671c;
    var_33 = auStack_5f0;
    unaff_s6 = var_13;
LAB_0002b75c:
    do {
      var_19 = var_33;
      if (var_2 == 0x5b) {
        if (var_7[-0x160c] == 0) {
          var_2 = (**(type_9 **)(var_6 + -0x7c74))(iStack_5c8);
          wVar12 = -1;
          if (var_2 != 0) {
            wVar12 = 1;
          }
          var_7[-0x160c] = wVar12;
          var_6 = var_12;
        }
        var_14 = var_13[1];
        var_15 = var_13 + 1;
        if ((var_14 == 0x21) || ((var_7[-0x160c] < 0 && (var_14 == 0x5e)))) {
          var_14 = var_13[2];
          var_15 = var_13 + 2;
        }
        if (var_14 == 0x5d) {
          var_14 = var_15[1];
          var_15 = var_15 + 1;
        }
        var_32 = (type_5 *)0x5d;
        while (var_13 = var_15 + 1, var_14 != 0x5d) {
          if (var_14 == 0) goto LAB_0002b7b4;
          var_15 = var_13;
          var_14 = *var_13;
        }
        var_2 = (int)(char)var_15[1];
      }
      else {
        var_32 = &DAT_c0000601;
        var_16 = var_2 - 0x21U & 0xff;
        var_17 = (type_5 *)(type_4)(var_16 < 0x20);
        if (var_17 == (type_5 *)0x0) {
          if ((var_2 == 0x7c) && (var_10 == (type_1 *)0x0)) {
            var_15 = var_20;
            if (var_18 == 0) {
              var_15 = var_13 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((type_4)(var_15 + 7) & 0xfffffffc) - 4) break;
            var_17 = var_13 + -(int)unaff_s6;
            var_24 = var_13 + 1;
            var_9 = -(((type_4)(var_15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar29 = var_19 + var_9;
            piStack_5d0 = (int *)(var_19 + var_9 + 0x18);
            var_33 = (type_6 *)(**(type_9 **)(var_6 + -0x7bfc))(var_19 + var_9 + 0x1c);
            var_37 = piStack_5bc;
            var_36 = piStack_5d0;
            var_6 = var_12;
            var_2 = (int)(char)var_13[1];
            *var_33 = 0;
            *piStack_5d0 = 0;
            piStack_5bc = var_36;
            *var_37 = (int)var_36;
            var_32 = unaff_s6;
            unaff_s6 = var_24;
            var_13 = var_24;
            var_19 = var_19 + var_9;
            var_33 = puVar29;
            if (var_2 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          var_2 = (int)(char)var_13[1];
        }
        else {
          while ((int)((0xc0000601U >> (var_16 & 0x1f)) << 0x1f) < 0) {
            var_2 = (int)(char)var_13[1];
            if (var_2 != 0x28) goto joined_r0x0002b91c;
            var_17 = (type_5 *)0x1;
            var_10 = (type_1 *)((int)var_10 + 1);
            var_13 = var_13 + 1;
            var_16 = 7;
          }
          if (var_2 != 0x29) goto LAB_0002b918;
          if (var_10 == (type_1 *)0x0) {
            if (1 < var_11 - 0x3fU) {
              var_20 = var_13 + (1 - (int)unaff_s6);
            }
            if (((type_4)(var_20 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              var_2 = -(((type_4)(var_20 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              var_33 = (type_6 *)
                       (**(type_9 **)(var_6 + -0x7bfc))
                                 (var_19 + var_2 + 0x1c,unaff_s6,(int)var_13 - (int)unaff_s6);
              var_36 = piStack_5bc;
              var_6 = var_12;
              *var_33 = 0;
              *(type_7 *)(var_19 + var_2 + 0x18) = 0;
              *var_36 = (int)(var_19 + var_2 + 0x18);
              if (var_21 == 0) {
                var_11 = (**(type_9 **)(var_6 + -0x7d80))
                                  (*(int *)(var_6 + -0x7fc8) + 0x7a14,
                                   *(int *)(var_6 + -0x7fc8) + 0x7a00,0x454,
                                   *(int *)(var_6 + -0x7fc8) + 0x7d60);
                return var_11;
              }
              if (var_13[-1] != 0x29) {
                var_11 = (**(type_9 **)(var_6 + -0x7d80))
                                  (*(int *)(var_6 + -0x7fc8) + 0x7a24,
                                   *(int *)(var_6 + -0x7fc8) + 0x7a00,0x455,
                                   *(int *)(var_6 + -0x7fc8) + 0x7d60);
                return var_11;
              }
              if (0x1f < var_11 - 0x21U) {
                var_11 = (**(type_9 **)(var_6 + -0x7d80))
                                  (*(int *)(var_6 + -0x7fc8) + 0x7a38,
                                   *(int *)(var_6 + -0x7fc8) + 0x7a00,0x4ad,
                                   *(int *)(var_6 + -0x7fc8) + 0x7d60);
                return var_11;
              }
                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              var_11 = (*(type_9 *)(var_6 +
                                *(int *)(*(int *)(var_6 + -0x7fc8) + 0x7bf0 + (var_11 - 0x21U) * 4)
                                ))();
              return var_11;
            }
            break;
          }
          var_2 = (int)(char)var_13[1];
          var_10 = (type_1 *)((int)var_10 + -1);
        }
joined_r0x0002b91c:
        var_13 = var_13 + 1;
      }
      var_33 = var_19;
    } while (var_2 != 0);
  }
LAB_0002b7b4:
  var_23 = *(type_9 **)(var_6 + -0x7c10);
  if (var_22 == (type_5 *)*puVar15) {
    return -1;
  }
  pcVar32 = var_30;
  var_15 = var_22;
  (*var_23)();
  var_26 = var_23 + 0x25450;
  puVar7 = *(type_7 **)(var_23 + 0x1d86c);
  *(type_6 **)(var_19 + -8) = auStack_5f0;
  *(type_1 **)(var_19 + -0x1c) = var_7;
  *(type_9 **)(var_19 + -0x160) = var_26;
  *(type_9 **)(var_19 + -4) = pcVar32;
  *(type_5 **)(var_19 + -0xc) = var_13;
  *(type_5 **)(var_19 + -0x10) = unaff_s6;
  *(type_1 **)(var_19 + -0x14) = var_10;
  *(type_5 **)(var_19 + -0x18) = var_29;
  *(type_7 **)(var_19 + -0x20) = puVar15;
  *(type_4 *)(var_19 + -0x24) = var_18;
  *(type_1 **)(var_19 + -0x28) = string;
  *(type_7 **)(var_19 + -0x144) = puVar7;
  *(type_5 **)(var_19 + -0x154) = var_15 + 1;
  var_24 = (type_5 *)(type_4)*var_15;
  *(type_7 *)(var_19 + -0x2c) = *puVar7;
  var_25 = *(type_5 **)(var_23 + 0x1d488);
  var_13 = var_17;
  var_28 = var_32;
  if (var_24 != (type_5 *)0x0) {
    var_16 = *(type_4 *)(var_19 + 0x10);
    var_18 = var_16 & 2;
    string = (type_1 *)(var_16 & 0x10);
    *(type_4 *)(var_19 + -0x140) = var_16 & 5;
    *(type_7 *)(var_19 + -0x148) = *(type_7 *)(var_23 + 0x1d478);
    *(type_5 **)(var_19 + -0x14c) = var_25 + 0x7c70;
    *(int *)(var_19 + -0x138) = *(int *)(var_23 + 0x1d488) + -0x4960;
    *(int *)(var_19 + -0x13c) = *(int *)(var_23 + 0x1d488) + 0x671c;
    var_29 = var_15;
    unaff_s6 = var_27;
    do {
      var_27 = var_24;
      if ((type_5 *)string != (type_5 *)0x0) {
        var_36 = (int *)(**(type_9 **)(var_26 + -0x7d7c))();
        var_26 = *(type_9 **)(var_19 + -0x160);
        var_27 = (type_5 *)(type_4)*(type_5 *)(*var_36 + (int)var_24 * 4 + 3);
      }
      if (((type_4)(var_27 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_11 = (*(var_26 +
                  *(int *)(*(int *)(var_19 + -0x14c) + ((type_4)(var_27 + -0x21) & 0xff) * 4)))();
        return var_11;
      }
      var_16 = 1;
      var_24 = var_27;
      if (var_28 == var_17) goto LAB_0002c064;
      var_24 = (type_5 *)(type_4)*var_28;
      if ((type_5 *)string != (type_5 *)0x0) {
        var_36 = (int *)(**(type_9 **)(var_26 + -0x7d7c))();
        var_26 = *(type_9 **)(var_19 + -0x160);
        var_24 = *(type_5 **)(*var_36 + (int)var_24 * 4);
      }
      var_16 = 1;
      unaff_s6 = var_27;
      if (var_24 != var_27) goto LAB_0002c064;
      var_29 = *(type_5 **)(var_19 + -0x154);
      unaff_s6 = (type_5 *)0x0;
      var_24 = (type_5 *)(type_4)*var_29;
      var_28 = var_28 + 1;
      *(type_5 **)(var_19 + -0x154) = var_29 + 1;
    } while (var_24 != (type_5 *)0x0);
  }
  var_16 = 0;
  if (var_28 != var_17) {
    var_29 = (type_5 *)(*(type_4 *)(var_19 + 0x10) & 8);
    if (var_29 == (type_5 *)0x0) {
      var_16 = 1;
    }
    else {
      var_16 = (type_4)(*var_28 != 0x2f);
    }
  }
LAB_0002c064:
  var_11 = *(int *)(var_19 + -0x2c);
  if (var_11 == **(int **)(var_19 + -0x144)) {
    return var_16;
  }
  var_23 = *(type_9 **)(var_26 + -0x7c10);
  pcVar32 = gnu_fnmatch;
  (*var_23)();
  var_33 = var_19 + -0x1e0;
  var_26 = *(type_9 **)(var_23 + 0x1cbc4);
  *(type_4 *)(var_19 + -0x19c) = var_18;
  var_36 = *(int **)(var_23 + 0x1cc28);
  *(type_5 **)(var_19 + -0x180) = var_28;
  *(type_5 **)(var_19 + -0x198) = var_24;
  *(type_9 **)(var_19 + -0x1c8) = var_23 + 0x2480c;
  *(type_9 **)(var_19 + -0x17c) = pcVar32;
  *(type_5 **)(var_19 + -0x184) = var_25;
  *(type_5 **)(var_19 + -0x188) = unaff_s6;
  *(type_1 **)(var_19 + -0x18c) = var_10;
  *(type_5 **)(var_19 + -400) = var_29;
  *(type_5 **)(var_19 + -0x194) = var_17;
  *(type_1 **)(var_19 + -0x1a0) = string;
  *(int *)(var_19 + -0x1b4) = var_11;
  *(type_5 **)(var_19 + -0x1b8) = var_32;
  *(int *)(var_19 + -0x1a4) = *var_36;
  var_11 = (*var_26)();
  var_2 = *(int *)(var_19 + -0x1c8);
  if (var_11 == 1) {
LAB_0002ca44:
    var_27 = *(type_5 **)(var_19 + -0x1b8);
    var_11 = (**(type_9 **)(var_2 + -0x7ca4))(var_27);
    *(type_5 **)(var_19 + -0x1d0) = var_13;
    var_32 = (type_5 *)var_30(*(char **)(var_19 + -0x1b4),(char *)var_27,
                                       (char *)(var_27 + var_11),
                                       var_31((type_4)((int)var_13 << 0x1d) >> 0x1f,0),
                                       *(int *)(var_19 + -0x1d0));
    var_11 = *(int *)(var_19 + -0x1c8);
    var_33 = var_19 + -0x1e0;
  }
  else {
    puVar14 = var_19 + -0x1ac;
    var_23 = *(type_9 **)(var_2 + -0x7ba4);
    var_10 = (type_1 *)(var_19 + -0x1b4);
    *(type_7 *)(var_19 + -0x1ac) = 0;
    *(type_7 *)(var_19 + -0x1a8) = 0;
    var_11 = (*var_23)(0,var_10,0,puVar14);
    var_17 = (type_5 *)(var_11 + 1);
    var_2 = *(int *)(var_19 + -0x1c8);
    if (var_17 == (type_5 *)0x0) goto LAB_0002ca44;
    var_11 = (**(type_9 **)(var_2 + -0x7be8))(puVar14);
    uVar33 = 0x129;
    var_2 = *(int *)(var_19 + -0x1c8);
    if (var_11 == 0) goto LAB_0002ccf0;
    unaff_s6 = var_19 + -0x1b8;
    var_27 = unaff_s6;
    var_29 = (type_5 *)(**(type_9 **)(var_2 + -0x7ba4))(0,unaff_s6,0,puVar14);
    var_25 = var_29 + 1;
    var_2 = *(int *)(var_19 + -0x1c8);
    if (var_25 == (type_5 *)0x0) goto LAB_0002ca44;
    var_11 = (**(type_9 **)(var_2 + -0x7be8))(puVar14);
    var_2 = *(int *)(var_19 + -0x1c8);
    if (var_11 == 0) {
      uVar33 = 0x12d;
      goto LAB_0002ccf0;
    }
    var_32 = var_17 + (int)var_25;
    if ((var_32 < var_17) || ((type_5 *)0x3fffffff < var_32)) {
LAB_0002cc10:
      var_32 = (type_5 *)0xffffffff;
      puVar15 = (type_7 *)(**(type_9 **)(var_2 + -0x7cc8))();
      var_11 = *(int *)(var_19 + -0x1c8);
      *puVar15 = 0xc;
    }
    else if (var_32 < (type_5 *)0x7d0) {
      var_9 = -((int)var_32 * 4 + 7U & 0xfffffff8);
      var_8 = (type_1 *)(var_19 + var_9 + -0x1c8);
      var_15 = (type_5 *)(var_8 + (int)var_17);
      (**(type_9 **)(var_2 + -0x7ba4))(var_8,var_10,var_17,puVar14);
      var_11 = (**(type_9 **)(*(int *)(var_19 + -0x1c8) + -0x7be8))(puVar14);
      var_2 = *(int *)(var_19 + -0x1c8);
      if (var_11 == 0) {
LAB_0002cd10:
        do {
          uVar33 = 0x147;
LAB_0002ccf0:
          (**(type_9 **)(var_2 + -0x7d80))
                    (*(int *)(var_2 + -0x7fc8) + 0x7a70,*(int *)(var_2 + -0x7fc8) + 0x7a60,uVar33,
                     *(int *)(var_2 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(type_9 **)(var_2 + -0x7ba4))(var_15,unaff_s6,var_25,puVar14);
      *(type_5 **)(var_19 + var_9 + -0x1d0) = var_13;
      var_27 = var_15;
      var_32 = (type_5 *)function_1(var_8,(type_1 *)var_15,
                                          (type_1 *)(var_15 + (int)var_29 * 4),
                                          var_31((type_4)((int)var_13 << 0x1d) >> 0x1f,0),
                                          *(int *)(var_19 + var_9 + -0x1d0));
      var_11 = *(int *)(var_19 + -0x1c8);
      var_17 = var_15;
      var_10 = var_8;
      var_33 = var_19 + var_9 + -0x1e0;
    }
    else {
      var_11 = (**(type_9 **)(var_2 + -0x7c80))();
      var_2 = *(int *)(var_19 + -0x1c8);
      if (var_11 == 0) goto LAB_0002cc10;
      var_23 = *(type_9 **)(var_2 + -0x7ba4);
      *(int *)(var_19 + -0x1bc) = var_11;
      var_15 = (type_5 *)(var_11 + (int)var_17 * 4);
      (*var_23)(var_11,var_10,var_17,puVar14);
      var_11 = (**(type_9 **)(*(int *)(var_19 + -0x1c8) + -0x7be8))(puVar14);
      var_2 = *(int *)(var_19 + -0x1c8);
      if (var_11 == 0) goto LAB_0002cd10;
      var_23 = *(type_9 **)(var_2 + -0x7ba4);
      *(type_7 *)(var_19 + -0x1bc) = *(type_7 *)(var_19 + -0x1bc);
      (*var_23)(var_15,unaff_s6,var_25,puVar14);
      *(type_5 **)(var_19 + -0x1d0) = var_13;
      var_27 = var_15;
      var_32 = (type_5 *)function_1(*(type_1 **)(var_19 + -0x1bc),(type_1 *)var_15,
                                          (type_1 *)(var_15 + (int)var_29 * 4),
                                          var_31((type_4)((int)var_13 << 0x1d) >> 0x1f,0),
                                          *(int *)(var_19 + -0x1d0));
      (**(type_9 **)(*(int *)(var_19 + -0x1c8) + -0x7bd8))(*(type_7 *)(var_19 + -0x1bc));
      var_11 = *(int *)(var_19 + -0x1c8);
      var_17 = var_15;
      var_33 = var_19 + -0x1e0;
    }
  }
  var_2 = *(int *)(var_19 + -0x1a4);
  var_23 = *(type_9 **)(var_11 + -0x7c10);
  if (var_2 == *var_36) {
    return (int)var_32;
  }
  pcVar32 = rpl_getcwd;
  (*var_23)();
  var_26 = var_23 + 0x244c0;
  puVar15 = *(type_7 **)(var_23 + 0x1c8dc);
  *(type_7 **)(var_33 + -0xf4) = puVar15;
  *(type_9 **)(var_33 + -0x110) = var_26;
  *(type_9 **)(var_33 + -4) = pcVar32;
  *(type_6 **)(var_33 + -8) = var_19 + -0x1e0;
  *(type_5 **)(var_33 + -0xc) = var_25;
  *(type_5 **)(var_33 + -0x10) = unaff_s6;
  *(type_1 **)(var_33 + -0x14) = var_10;
  *(type_5 **)(var_33 + -0x18) = var_29;
  *(type_5 **)(var_33 + -0x1c) = var_17;
  *(type_5 **)(var_33 + -0x20) = var_13;
  *(int **)(var_33 + -0x24) = var_36;
  *(type_5 **)(var_33 + -0x28) = var_32;
  *(type_5 **)(var_33 + 4) = var_27;
  *(int *)(var_33 + -0x100) = var_2;
  *(type_7 *)(var_33 + -0x2c) = *puVar15;
  if (var_27 == (type_5 *)0x0) {
    if (var_2 == 0) {
      *(type_7 *)(var_33 + -0xf8) = 0x1000;
LAB_0002cd88:
      var_11 = (**(type_9 **)(var_23 + 0x1c840))(*(type_7 *)(var_33 + -0xf8));
      var_26 = *(type_9 **)(var_33 + -0x110);
      *(int *)(var_33 + -0x108) = var_11;
      if (var_11 == 0) {
        var_37 = *(int **)(var_33 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar15 = (type_7 *)(**(type_9 **)(var_23 + 0x1c7f8))();
    var_26 = *(type_9 **)(var_33 + -0x110);
    *(type_7 *)(var_33 + -0x108) = 0;
    *puVar15 = 0x16;
  }
  else {
    if (*(int *)(var_33 + -0x100) == 0) {
      *(type_7 *)(var_33 + -0xf8) = *(type_7 *)(var_33 + 4);
      goto LAB_0002cd88;
    }
    *(type_7 *)(var_33 + -0xf8) = *(type_7 *)(var_33 + 4);
    *(type_7 *)(var_33 + -0x108) = *(type_7 *)(var_33 + -0x100);
LAB_0002cdbc:
    var_11 = *(int *)(var_33 + -0x108);
    var_19 = var_33 + -0xd0;
    var_9 = *(int *)(var_33 + -0xf8);
    var_23 = *(type_9 **)(var_26 + -0x7d60);
    var_27 = (type_5 *)(*(int *)(var_26 + -0x7fc8) + 0x6104);
    *(type_6 *)(var_11 + var_9 + -1) = 0;
    var_2 = (*var_23)(3,var_27,var_19);
    var_34 = *(int *)(var_33 + -0x110);
    if (-1 < var_2) {
      var_2 = *(int *)(var_34 + -0x7fc8);
      var_23 = *(type_9 **)(var_34 + -0x7d60);
      var_35 = *(int *)(var_33 + -0xc0);
      *(type_7 *)(var_33 + -0x104) = *(type_7 *)(var_33 + -0xd0);
      var_27 = (type_5 *)(var_2 + 0x6154);
      *(type_7 *)(var_33 + -0xfc) = *(type_7 *)(var_33 + -0xbc);
      var_2 = (*var_23)(3,var_27,var_19);
      var_34 = *(int *)(var_33 + -0x110);
      if (-1 < var_2) {
        var_36 = (int *)0x0;
        *(int *)(var_33 + -0xe0) = var_11 + var_9 + -1;
        var_29 = (type_5 *)0xffffff9c;
        *(type_7 *)(var_33 + -0xec) = *(type_7 *)(var_33 + -0xd0);
        *(type_7 *)(var_33 + -0xe4) = *(type_7 *)(var_33 + -0xc0);
        *(type_7 *)(var_33 + -0xdc) = *(type_7 *)(var_33 + -0xbc);
        *(int *)(var_33 + -0xe8) = *(int *)(var_34 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(var_33 + -0x104) == *(int *)(var_33 + -0xec)) &&
           (var_35 == *(int *)(var_33 + -0xe4))) {
          var_23 = *(type_9 **)(var_34 + -0x7cac);
          if (*(int *)(var_33 + -0xfc) == *(int *)(var_33 + -0xdc)) {
            if (var_36 != (int *)0x0) {
              var_11 = (**(type_9 **)(var_34 + -0x7d6c))(var_36);
              var_34 = *(int *)(var_33 + -0x110);
              if (var_11 != 0) goto LAB_0002d19c;
            }
            var_11 = *(int *)(var_33 + -0xe0);
            if (*(int *)(var_33 + -0xe0) ==
                *(int *)(var_33 + -0x108) + *(int *)(var_33 + -0xf8) + -1) {
              *(type_6 **)(var_33 + -0xe0) = (type_6 *)(var_11 + -1);
              *(type_6 *)(var_11 + -1) = 0x2f;
            }
            var_27 = *(type_5 **)(var_33 + -0xe0);
            var_32 = (type_5 *)((*(int *)(var_33 + -0x108) + *(int *)(var_33 + -0xf8)) - (int)var_27
                              );
            (**(type_9 **)(var_34 + -0x7bd0))(*(int *)(var_33 + -0x108),var_27,var_32);
            var_26 = *(type_9 **)(var_33 + -0x110);
            if (*(int *)(var_33 + 4) == 0) {
              var_27 = var_32;
              uVar33 = (**(type_9 **)(var_26 + -0x7c78))(*(type_7 *)(var_33 + -0x108));
              var_26 = *(type_9 **)(var_33 + -0x110);
              *(type_7 *)(var_33 + -0x100) = uVar33;
            }
            var_11 = *(int *)(var_33 + -0x100);
            if (*(int *)(var_33 + -0x100) == 0) {
              var_11 = *(int *)(var_33 + -0x108);
            }
            *(int *)(var_33 + -0x108) = var_11;
            goto LAB_0002d158;
          }
        }
        else {
          var_23 = *(type_9 **)(var_34 + -0x7cac);
        }
        var_17 = *(type_5 **)(var_33 + -0xe8);
        var_29 = (type_5 *)(*var_23)(var_29,var_17,0);
        if ((int)var_29 < 0) {
          var_13 = (type_5 *)(**(type_9 **)(*(int *)(var_33 + -0x110) + -0x7cc8))();
          var_26 = *(type_9 **)(var_33 + -0x110);
          var_32 = *(type_5 **)var_13;
          if (var_36 != (int *)0x0) {
            var_23 = *(type_9 **)(var_26 + -0x7d6c);
LAB_0002d138:
            (*var_23)(var_36);
            var_26 = *(type_9 **)(var_33 + -0x110);
          }
          var_23 = *(type_9 **)(var_26 + -0x7bd8);
          var_27 = var_17;
          if (*(int *)(var_33 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        var_17 = var_29;
        var_11 = (**(type_9 **)(*(int *)(var_33 + -0x110) + -0x7c40))(3,var_29,var_19);
        var_2 = *(int *)(var_33 + -0x110);
        if (var_11 == 0) {
          if (var_36 == (int *)0x0) {
LAB_0002cec4:
            var_23 = *(type_9 **)(var_2 + -0x7d1c);
            *(type_7 *)(var_33 + -0xf0) = *(type_7 *)(var_33 + -0xd0);
            *(type_7 *)(var_33 + -0xd8) = *(type_7 *)(var_33 + -0xc0);
            *(type_7 *)(var_33 + -0xd4) = *(type_7 *)(var_33 + -0xbc);
            var_36 = (int *)(*var_23)(var_29);
            var_13 = (type_5 *)(**(type_9 **)(*(int *)(var_33 + -0x110) + -0x7cc8))();
            var_11 = *(int *)(var_33 + -0x110);
            if (var_36 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              var_23 = *(type_9 **)(var_11 + -0x7d38);
LAB_0002cf18:
              var_13[0] = 0;
              var_13[1] = 0;
              var_13[2] = 0;
              var_13[3] = 0;
              var_37 = (int *)(*var_23)(var_36);
              var_11 = *(int *)(var_33 + -0x110);
              if (var_37 == (int *)0x0) {
                var_32 = *(type_5 **)var_13;
                var_23 = *(type_9 **)(var_11 + -0x7d6c);
                if (var_32 == (type_5 *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    var_32 = (type_5 *)0x2;
                    var_13[0] = 0;
                    var_13[1] = 0;
                    var_13[2] = 0;
                    var_13[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(type_9 **)(var_11 + -0x7d90))(var_36);
                  var_37 = (int *)(**(type_9 **)(*(int *)(var_33 + -0x110) + -0x7d38))(var_36);
                  var_11 = *(int *)(var_33 + -0x110);
                  if (var_37 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)var_37 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  var_32 = *(type_5 **)var_13;
                  var_23 = *(type_9 **)(var_11 + -0x7d6c);
                  if (var_32 == (type_5 *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)var_37 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(var_37 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          var_11 = (**(type_9 **)(var_2 + -0x7d6c))(var_36);
          var_2 = *(int *)(var_33 + -0x110);
          if (var_11 == 0) goto LAB_0002cec4;
          var_13 = (type_5 *)(**(type_9 **)(var_2 + -0x7cc8))();
          var_11 = *(int *)(var_33 + -0x110);
LAB_0002d208:
          var_32 = *(type_5 **)var_13;
        }
        else {
          var_13 = (type_5 *)(**(type_9 **)(var_2 + -0x7cc8))();
          var_11 = *(int *)(var_33 + -0x110);
          var_32 = *(type_5 **)var_13;
          if (var_36 != (int *)0x0) {
            (**(type_9 **)(var_11 + -0x7d6c))(var_36);
            var_11 = *(int *)(var_33 + -0x110);
          }
        }
        (**(type_9 **)(var_11 + -0x7d68))(var_29);
        var_26 = *(type_9 **)(var_33 + -0x110);
        var_27 = var_17;
        if (*(int *)(var_33 + -0x100) != 0) goto LAB_0002d150;
        var_23 = *(type_9 **)(var_26 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    var_13 = (type_5 *)(**(type_9 **)(var_34 + -0x7cc8))();
    var_32 = *(type_5 **)var_13;
    var_26 = *(type_9 **)(var_33 + -0x110);
    if (*(int *)(var_33 + -0x100) == 0) {
      var_23 = *(type_9 **)(var_26 + -0x7bd8);
LAB_0002d1e4:
      (*var_23)(*(type_7 *)(var_33 + -0x108));
      var_26 = *(type_9 **)(var_33 + -0x110);
    }
LAB_0002d150:
    *(type_5 **)var_13 = var_32;
    *(type_7 *)(var_33 + -0x108) = 0;
  }
LAB_0002d158:
  var_37 = *(int **)(var_33 + -0xf4);
LAB_0002d15c:
  var_11 = *(int *)(var_33 + -0x2c);
  if (var_11 != *var_37) {
    var_23 = *(type_9 **)(var_26 + -0x7c10);
    uVar33 = 0x2d36c;
    (*var_23)();
    *(type_9 **)(var_33 + -0x140) = var_23 + 0x23e70;
    *(type_7 *)(var_33 + -300) = uVar33;
    *(type_5 **)(var_33 + -0x130) = var_13;
    *(int **)(var_33 + -0x134) = var_36;
    *(type_5 **)(var_33 + -0x138) = var_32;
    if (var_11 == 0) {
      var_11 = -1;
      puVar15 = (type_7 *)(**(type_9 **)(var_23 + 0x1c1a8))();
      *puVar15 = 0x7a;
    }
    else if (var_11 == 10) {
      uVar33 = *(type_7 *)var_27;
      var_2 = (**(type_9 **)(var_23 + 0x1c2c8))(uVar33,*(int *)(var_23 + 0x1bea8) + 0x3e68);
      if (var_2 == 0) {
        var_11 = -1;
        (**(type_9 **)(*(int *)(var_33 + -0x140) + -0x7d34))(uVar33);
        var_23 = *(type_9 **)(*(int *)(var_33 + -0x140) + -0x7cc8);
        var_27[0] = 0;
        var_27[1] = 0;
        var_27[2] = 0;
        var_27[3] = 0;
        puVar15 = (type_7 *)(*var_23)();
        *puVar15 = 0x3d;
      }
    }
    return var_11;
  }
  return *(int *)(var_33 + -0x108);
code_r0x0002d0ec:
  var_23 = *(type_9 **)(var_11 + -0x7d38);
  if ((var_37[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  var_23 = *(type_9 **)(var_11 + -0x7c30);
  if (bVar1) {
    if (*var_37 == var_35) {
      var_2 = *(int *)(var_33 + -0x104);
      if (var_37[1] == *(int *)(var_33 + -0xfc)) {
        var_23 = *(type_9 **)(var_11 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      var_2 = *(int *)(var_33 + -0x104);
    }
    var_23 = *(type_9 **)(var_11 + -0x7d38);
    if (var_2 == *(int *)(var_33 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    var_23 = *(type_9 **)(var_11 + -0x7c30);
  }
LAB_0002cf5c:
  var_27 = (type_5 *)((int)var_37 + 0x13);
  *(type_7 *)(var_33 + -0x118) = 0x100;
  var_17 = var_29;
  var_2 = (*var_23)(3,var_29,var_27,var_19);
  var_11 = *(int *)(var_33 + -0x110);
  if (var_2 != 0) goto LAB_0002cf10;
  var_23 = *(type_9 **)(var_11 + -0x7d38);
  if (((((*(type_4 *)(var_33 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(var_33 + -0xd0) != *(int *)(var_33 + -0x104))) ||
      (*(int *)(var_33 + -0xc0) != var_35)) ||
     (*(int *)(var_33 + -0xbc) != *(int *)(var_33 + -0xfc))) goto LAB_0002cf18;
  var_15 = (type_5 *)(*(int *)(var_33 + -0xe0) - *(int *)(var_33 + -0x108));
  var_32 = (type_5 *)(**(type_9 **)(var_11 + -0x7ca4))(var_27);
  var_11 = *(int *)(var_33 + -0x110);
  if (var_15 <= var_32) {
    var_24 = *(type_5 **)(var_33 + -0xf8);
    if (*(int *)(var_33 + 4) != 0) {
      var_32 = (type_5 *)0x22;
      var_13[0] = 0;
      var_13[1] = 0;
      var_13[2] = 0;
      var_13[3] = 0x22;
      goto LAB_0002d134;
    }
    var_28 = var_24;
    if (var_24 < var_32) {
      var_28 = var_32;
    }
    var_25 = var_28 + (int)var_24;
    var_23 = *(type_9 **)(var_11 + -0x7c78);
    if (var_25 < var_24) {
LAB_0002d338:
      var_32 = (type_5 *)0xc;
      var_13[0] = 0;
      var_13[1] = 0;
      var_13[2] = 0;
      var_13[3] = 0xc;
LAB_0002d134:
      var_23 = *(type_9 **)(var_11 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(type_5 **)(var_33 + -0x104) = var_28;
    var_17 = var_25;
    var_2 = (*var_23)(*(type_7 *)(var_33 + -0x108));
    var_11 = *(int *)(var_33 + -0x110);
    if (var_2 == 0) goto LAB_0002d338;
    uVar33 = (**(type_9 **)(var_11 + -0x7be0))
                       (var_15 + var_2 + *(int *)(var_33 + -0x104),var_15 + var_2,
                        *(int *)(var_33 + -0xf8) - (int)var_15);
    var_11 = *(int *)(var_33 + -0x110);
    *(type_5 **)(var_33 + -0xf8) = var_25;
    *(type_7 *)(var_33 + -0xe0) = uVar33;
    *(int *)(var_33 + -0x108) = var_2;
  }
  var_11 = (**(type_9 **)(var_11 + -0x7be0))(*(int *)(var_33 + -0xe0) - (int)var_32,var_27,var_32);
  var_34 = *(int *)(var_33 + -0x110);
  var_35 = *(int *)(var_33 + -0xd8);
  *(int *)(var_33 + -0xe0) = var_11 + -1;
  *(type_6 *)(var_11 + -1) = 0x2f;
  *(type_7 *)(var_33 + -0xfc) = *(type_7 *)(var_33 + -0xd4);
  *(type_7 *)(var_33 + -0x104) = *(type_7 *)(var_33 + -0xf0);
  goto LAB_0002ce58;
}


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

byte * MASKED(int *param_1,byte *param_2,byte *param_3,byte *param_4,uint param_5)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  byte *pbVar4;
  int iVar5;
  byte *pbVar6;
  uint uVar7;
  byte bVar12;
  undefined1 *puVar8;
  undefined4 *puVar9;
  int *piVar10;
  byte *pbVar11;
  int *piVar13;
  byte *pbVar14;
  uint unaff_s0;
  undefined1 *puVar15;
  uint unaff_s1;
  undefined4 *puVar16;
  byte *pbVar17;
  byte *pbVar18;
  int *unaff_s5;
  byte *unaff_s6;
  int iVar19;
  byte *pbVar20;
  undefined1 *puVar21;
  undefined *puVar22;
  code *pcVar23;
  code *pcVar24;
  int iVar25;
  undefined1 *puVar26;
  byte *pbVar27;
  byte *pbVar28;
  int iVar29;
  code *pcVar30;
  undefined4 uVar31;
  undefined1 auStack_5f0 [24];
  undefined *puStack_5d8;
  int *piStack_5d0;
  byte *pbStack_5cc;
  int iStack_5c8;
  byte *pbStack_5c4;
  uint uStack_5c0;
  int *piStack_5bc;
  int iStack_5b8;
  byte *pbStack_5b4;
  uint uStack_5b0;
  uint uStack_5ac;
  byte bStack_575;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar22 = PTR_LAB_00049218;
  iVar3 = *(int *)PTR___stack_chk_guard_000495fc;
  iVar19 = *param_1;
  pbVar4 = param_3;
  pbVar27 = param_2;
  if (iVar19 != 0) {
    unaff_s5 = param_1 + 1;
    unaff_s1 = param_5 & 2;
    unaff_s0 = param_5 & 0x10;
    unaff_s6 = param_4;
    do {
      if (unaff_s0 != 0) {
        iVar19 = (*(code *)PTR_towlower_000495f0)(iVar19);
      }
      if (iVar19 - 0x21U < 0x3c) {
                    /* WARNING: Could not emulate address calculation at 0x0002ab78 */
                    /* WARNING: Treating indirect jump as call */
        pbVar4 = (byte *)(*(code *)(&_gp_1 + *(int *)(puVar22 + (iVar19 - 0x21U) * 4 + 0x7b00)))();
        return pbVar4;
      }
      if (param_3 == pbVar27) goto LAB_0002ad44;
      iVar5 = *(int *)pbVar27;
      if (unaff_s0 != 0) {
        iVar5 = (*(code *)PTR_towlower_000495f0)(iVar5);
      }
      pbVar6 = (byte *)0x1;
      if (iVar5 != iVar19) goto LAB_0002ad48;
      unaff_s6 = (byte *)0x0;
      iVar19 = *unaff_s5;
      pbVar27 = pbVar27 + 4;
      unaff_s5 = unaff_s5 + 1;
    } while (iVar19 != 0);
  }
  pbVar6 = (byte *)0x0;
  if (pbVar27 != param_3) {
    if ((param_5 & 8) == 0) {
LAB_0002ad44:
      pbVar6 = (byte *)0x1;
    }
    else {
      pbVar6 = (byte *)(uint)(*(int *)pbVar27 != 0x2f);
    }
  }
LAB_0002ad48:
  if (iVar3 == *(int *)puVar2) {
    return pbVar6;
  }
  puVar22 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puStack_5d8 = puVar22 + 0x25b40;
  puVar21 = auStack_5f0;
  puVar16 = *(undefined4 **)(puVar22 + 0x1df5c);
  uStack_5c0 = (uint)bStack_575;
  pbVar27 = param_2 + 1;
  iStack_5b8 = 0;
  pbStack_5b4 = (byte *)*puVar16;
  pbVar14 = param_2;
  pbVar6 = pbVar4;
  pbStack_5c4 = param_4;
  uStack_5b0 = unaff_s0;
  uStack_5ac = unaff_s1;
  pbStack_5cc = (byte *)(**(code **)(puVar22 + 0x1de9c))(param_2);
  iVar19 = (int)(char)param_2[1];
  puVar22 = puStack_5d8;
  if (iVar19 != 0) {
    unaff_s5 = (int *)0x0;
    param_3 = *(byte **)(puStack_5d8 + -0x7fd8);
    piStack_5bc = &iStack_5b8;
    unaff_s1 = (uint)(iVar3 - 0x3fU < 2);
    iStack_5c8 = *(int *)(puStack_5d8 + -0x7fc8) + 0x671c;
    puVar8 = auStack_5f0;
    unaff_s6 = pbVar27;
LAB_0002b75c:
    do {
      puVar21 = puVar8;
      if (iVar19 == 0x5b) {
        if (*(int *)(param_3 + -0x5830) == 0) {
          iVar19 = (**(code **)(puVar22 + -0x7c74))(iStack_5c8);
          uVar31 = 0xffffffff;
          if (iVar19 != 0) {
            uVar31 = 1;
          }
          *(undefined4 *)(param_3 + -0x5830) = uVar31;
          puVar22 = puStack_5d8;
        }
        bVar12 = pbVar27[1];
        pbVar18 = pbVar27 + 1;
        if ((bVar12 == 0x21) || ((*(int *)(param_3 + -0x5830) < 0 && (bVar12 == 0x5e)))) {
          bVar12 = pbVar27[2];
          pbVar18 = pbVar27 + 2;
        }
        if (bVar12 == 0x5d) {
          bVar12 = pbVar18[1];
          pbVar18 = pbVar18 + 1;
        }
        pbVar14 = (byte *)0x5d;
        while (pbVar27 = pbVar18 + 1, bVar12 != 0x5d) {
          if (bVar12 == 0) goto LAB_0002b7b4;
          pbVar18 = pbVar27;
          bVar12 = *pbVar27;
        }
        iVar19 = (int)(char)pbVar18[1];
      }
      else {
        pbVar14 = &DAT_c0000601;
        uVar7 = iVar19 - 0x21U & 0xff;
        pbVar6 = (byte *)(uint)(uVar7 < 0x20);
        if (pbVar6 == (byte *)0x0) {
          if ((iVar19 == 0x7c) && (unaff_s5 == (int *)0x0)) {
            pbVar18 = pbStack_5cc;
            if (unaff_s1 == 0) {
              pbVar18 = pbVar27 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;
            pbVar6 = pbVar27 + -(int)unaff_s6;
            pbVar17 = pbVar27 + 1;
            iVar5 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar26 = puVar21 + iVar5;
            piStack_5d0 = (int *)(puVar21 + iVar5 + 0x18);
            puVar8 = (undefined1 *)(**(code **)(puVar22 + -0x7bfc))(puVar21 + iVar5 + 0x1c);
            piVar13 = piStack_5bc;
            piVar10 = piStack_5d0;
            puVar22 = puStack_5d8;
            iVar19 = (int)(char)pbVar27[1];
            *puVar8 = 0;
            *piStack_5d0 = 0;
            piStack_5bc = piVar10;
            *piVar13 = (int)piVar10;
            pbVar14 = unaff_s6;
            unaff_s6 = pbVar17;
            pbVar27 = pbVar17;
            puVar21 = puVar21 + iVar5;
            puVar8 = puVar26;
            if (iVar19 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar19 = (int)(char)pbVar27[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar7 & 0x1f)) << 0x1f) < 0) {
            iVar19 = (int)(char)pbVar27[1];
            if (iVar19 != 0x28) goto joined_r0x0002b91c;
            pbVar6 = (byte *)0x1;
            unaff_s5 = (int *)((int)unaff_s5 + 1);
            pbVar27 = pbVar27 + 1;
            uVar7 = 7;
          }
          if (iVar19 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (int *)0x0) {
            if (1 < iVar3 - 0x3fU) {
              pbStack_5cc = pbVar27 + (1 - (int)unaff_s6);
            }
            if (((uint)(pbStack_5cc + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar19 = -(((uint)(pbStack_5cc + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar8 = (undefined1 *)
                       (**(code **)(puVar22 + -0x7bfc))
                                 (puVar21 + iVar19 + 0x1c,unaff_s6,(int)pbVar27 - (int)unaff_s6);
              piVar10 = piStack_5bc;
              puVar22 = puStack_5d8;
              *puVar8 = 0;
              *(undefined4 *)(puVar21 + iVar19 + 0x18) = 0;
              *piVar10 = (int)(puVar21 + iVar19 + 0x18);
              if (iStack_5b8 == 0) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a14,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x454,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
              if (pbVar27[-1] != 0x29) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a24,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x455,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
              if (0x1f < iVar3 - 0x21U) {
                pbVar4 = (byte *)(**(code **)(puVar22 + -0x7d80))
                                           (*(int *)(puVar22 + -0x7fc8) + 0x7a38,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7a00,0x4ad,
                                            *(int *)(puVar22 + -0x7fc8) + 0x7d60);
                return pbVar4;
              }
                    /* WARNING: Could not recover jumptable at 0x0002ba20. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pbVar4 = (byte *)(*(code *)(puVar22 +
                                         *(int *)(*(int *)(puVar22 + -0x7fc8) + 0x7bf0 +
                                                 (iVar3 - 0x21U) * 4)))();
              return pbVar4;
            }
            break;
          }
          iVar19 = (int)(char)pbVar27[1];
          unaff_s5 = (int *)((int)unaff_s5 + -1);
        }
joined_r0x0002b91c:
        pbVar27 = pbVar27 + 1;
      }
      puVar8 = puVar21;
    } while (iVar19 != 0);
  }
LAB_0002b7b4:
  pcVar23 = *(code **)(puVar22 + -0x7c10);
  if (pbStack_5b4 == (byte *)*puVar16) {
    return (byte *)0xffffffff;
  }
  pcVar30 = FUN_0002bd90;
  pbVar18 = pbStack_5b4;
  (*pcVar23)();
  pcVar24 = pcVar23 + 0x25450;
  puVar9 = *(undefined4 **)(pcVar23 + 0x1d86c);
  *(undefined1 **)(puVar21 + -8) = auStack_5f0;
  *(byte **)(puVar21 + -0x1c) = param_3;
  *(code **)(puVar21 + -0x160) = pcVar24;
  *(code **)(puVar21 + -4) = pcVar30;
  *(byte **)(puVar21 + -0xc) = pbVar27;
  *(byte **)(puVar21 + -0x10) = unaff_s6;
  *(int **)(puVar21 + -0x14) = unaff_s5;
  *(byte **)(puVar21 + -0x18) = pbVar4;
  *(undefined4 **)(puVar21 + -0x20) = puVar16;
  *(uint *)(puVar21 + -0x24) = unaff_s1;
  *(byte **)(puVar21 + -0x28) = param_2;
  *(undefined4 **)(puVar21 + -0x144) = puVar9;
  *(byte **)(puVar21 + -0x154) = pbVar18 + 1;
  pbVar17 = (byte *)(uint)*pbVar18;
  *(undefined4 *)(puVar21 + -0x2c) = *puVar9;
  pbVar20 = *(byte **)(pcVar23 + 0x1d488);
  pbVar27 = pbVar6;
  pbVar28 = pbVar14;
  if (pbVar17 != (byte *)0x0) {
    uVar7 = *(uint *)(puVar21 + 0x10);
    unaff_s1 = uVar7 & 2;
    param_2 = (byte *)(uVar7 & 0x10);
    *(uint *)(puVar21 + -0x140) = uVar7 & 5;
    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(pcVar23 + 0x1d478);
    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;
    *(int *)(puVar21 + -0x138) = *(int *)(pcVar23 + 0x1d488) + -0x4960;
    *(int *)(puVar21 + -0x13c) = *(int *)(pcVar23 + 0x1d488) + 0x671c;
    pbVar4 = pbVar18;
    unaff_s6 = param_4;
    do {
      pbVar18 = pbVar17;
      if (param_2 != (byte *)0x0) {
        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();
        pcVar24 = *(code **)(puVar21 + -0x160);
        pbVar18 = (byte *)(uint)*(byte *)(*piVar10 + (int)pbVar17 * 4 + 3);
      }
      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pbVar4 = (byte *)(*(pcVar24 +
                           *(int *)(*(int *)(puVar21 + -0x14c) +
                                   ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();
        return pbVar4;
      }
      pbVar11 = (byte *)0x1;
      pbVar17 = pbVar18;
      if (pbVar28 == pbVar6) goto LAB_0002c064;
      pbVar17 = (byte *)(uint)*pbVar28;
      if (param_2 != (byte *)0x0) {
        piVar10 = (int *)(**(code **)(pcVar24 + -0x7d7c))();
        pcVar24 = *(code **)(puVar21 + -0x160);
        pbVar17 = *(byte **)(*piVar10 + (int)pbVar17 * 4);
      }
      pbVar11 = (byte *)0x1;
      unaff_s6 = pbVar18;
      if (pbVar17 != pbVar18) goto LAB_0002c064;
      pbVar4 = *(byte **)(puVar21 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar17 = (byte *)(uint)*pbVar4;
      pbVar28 = pbVar28 + 1;
      *(byte **)(puVar21 + -0x154) = pbVar4 + 1;
    } while (pbVar17 != (byte *)0x0);
  }
  pbVar11 = (byte *)0x0;
  if (pbVar28 != pbVar6) {
    pbVar4 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);
    if (pbVar4 == (byte *)0x0) {
      pbVar11 = (byte *)0x1;
    }
    else {
      pbVar11 = (byte *)(uint)(*pbVar28 != 0x2f);
    }
  }
LAB_0002c064:
  iVar3 = *(int *)(puVar21 + -0x2c);
  if (iVar3 == **(int **)(puVar21 + -0x144)) {
    return pbVar11;
  }
  pcVar23 = *(code **)(pcVar24 + -0x7c10);
  pcVar30 = gnu_fnmatch;
  (*pcVar23)();
  puVar8 = puVar21 + -0x1e0;
  pcVar24 = *(code **)(pcVar23 + 0x1cbc4);
  *(uint *)(puVar21 + -0x19c) = unaff_s1;
  piVar10 = *(int **)(pcVar23 + 0x1cc28);
  *(byte **)(puVar21 + -0x180) = pbVar28;
  *(byte **)(puVar21 + -0x198) = pbVar17;
  *(code **)(puVar21 + -0x1c8) = pcVar23 + 0x2480c;
  *(code **)(puVar21 + -0x17c) = pcVar30;
  *(byte **)(puVar21 + -0x184) = pbVar20;
  *(byte **)(puVar21 + -0x188) = unaff_s6;
  *(int **)(puVar21 + -0x18c) = unaff_s5;
  *(byte **)(puVar21 + -400) = pbVar4;
  *(byte **)(puVar21 + -0x194) = pbVar6;
  *(byte **)(puVar21 + -0x1a0) = param_2;
  *(int *)(puVar21 + -0x1b4) = iVar3;
  *(byte **)(puVar21 + -0x1b8) = pbVar14;
  *(int *)(puVar21 + -0x1a4) = *piVar10;
  iVar3 = (*pcVar24)();
  iVar19 = *(int *)(puVar21 + -0x1c8);
  if (iVar3 == 1) {
LAB_0002ca44:
    pbVar14 = *(byte **)(puVar21 + -0x1b8);
    iVar3 = (**(code **)(iVar19 + -0x7ca4))(pbVar14);
    *(byte **)(puVar21 + -0x1d0) = pbVar27;
    pbVar18 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar14,pbVar14 + iVar3,
                                   (uint)((int)pbVar27 << 0x1d) >> 0x1f);
    iVar3 = *(int *)(puVar21 + -0x1c8);
    puVar8 = puVar21 + -0x1e0;
  }
  else {
    puVar15 = puVar21 + -0x1ac;
    pcVar23 = *(code **)(iVar19 + -0x7ba4);
    unaff_s5 = (int *)(puVar21 + -0x1b4);
    *(undefined4 *)(puVar21 + -0x1ac) = 0;
    *(undefined4 *)(puVar21 + -0x1a8) = 0;
    iVar3 = (*pcVar23)(0,unaff_s5,0,puVar15);
    pbVar6 = (byte *)(iVar3 + 1);
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (pbVar6 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);
    uVar31 = 0x129;
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (iVar3 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar21 + -0x1b8;
    pbVar14 = unaff_s6;
    pbVar4 = (byte *)(**(code **)(iVar19 + -0x7ba4))(0,unaff_s6,0,puVar15);
    pbVar20 = pbVar4 + 1;
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;
    iVar3 = (**(code **)(iVar19 + -0x7be8))(puVar15);
    iVar19 = *(int *)(puVar21 + -0x1c8);
    if (iVar3 == 0) {
      uVar31 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar18 = pbVar6 + (int)pbVar20;
    if ((pbVar18 < pbVar6) || ((byte *)0x3fffffff < pbVar18)) {
LAB_0002cc10:
      pbVar18 = (byte *)0xffffffff;
      puVar16 = (undefined4 *)(**(code **)(iVar19 + -0x7cc8))();
      iVar3 = *(int *)(puVar21 + -0x1c8);
      *puVar16 = 0xc;
    }
    else if (pbVar18 < (byte *)0x7d0) {
      iVar5 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);
      piVar13 = (int *)(puVar21 + iVar5 + -0x1c8);
      pbVar17 = (byte *)(piVar13 + (int)pbVar6);
      (**(code **)(iVar19 + -0x7ba4))(piVar13,unaff_s5,pbVar6,puVar15);
      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) {
LAB_0002cd10:
        do {
          uVar31 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar19 + -0x7d80))
                    (*(int *)(iVar19 + -0x7fc8) + 0x7a70,*(int *)(iVar19 + -0x7fc8) + 0x7a60,uVar31,
                     *(int *)(iVar19 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar19 + -0x7ba4))(pbVar17,unaff_s6,pbVar20,puVar15);
      *(byte **)(puVar21 + iVar5 + -0x1d0) = pbVar27;
      pbVar14 = pbVar17;
      pbVar18 = (byte *)MASKED(piVar13,pbVar17,pbVar17 + (int)pbVar4 * 4,
                                     (uint)((int)pbVar27 << 0x1d) >> 0x1f);
      iVar3 = *(int *)(puVar21 + -0x1c8);
      pbVar6 = pbVar17;
      unaff_s5 = piVar13;
      puVar8 = puVar21 + iVar5 + -0x1e0;
    }
    else {
      iVar3 = (**(code **)(iVar19 + -0x7c80))();
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cc10;
      pcVar23 = *(code **)(iVar19 + -0x7ba4);
      *(int *)(puVar21 + -0x1bc) = iVar3;
      pbVar17 = (byte *)(iVar3 + (int)pbVar6 * 4);
      (*pcVar23)(iVar3,unaff_s5,pbVar6,puVar15);
      iVar3 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar15);
      iVar19 = *(int *)(puVar21 + -0x1c8);
      if (iVar3 == 0) goto LAB_0002cd10;
      pcVar23 = *(code **)(iVar19 + -0x7ba4);
      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);
      (*pcVar23)(pbVar17,unaff_s6,pbVar20,puVar15);
      *(byte **)(puVar21 + -0x1d0) = pbVar27;
      pbVar14 = pbVar17;
      pbVar18 = (byte *)MASKED(*(undefined4 *)(puVar21 + -0x1bc),pbVar17,
                                     pbVar17 + (int)pbVar4 * 4,(uint)((int)pbVar27 << 0x1d) >> 0x1f)
      ;
      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));
      iVar3 = *(int *)(puVar21 + -0x1c8);
      pbVar6 = pbVar17;
      puVar8 = puVar21 + -0x1e0;
    }
  }
  iVar19 = *(int *)(puVar21 + -0x1a4);
  pcVar23 = *(code **)(iVar3 + -0x7c10);
  if (iVar19 == *piVar10) {
    return pbVar18;
  }
  pcVar30 = rpl_getcwd;
  (*pcVar23)();
  pcVar24 = pcVar23 + 0x244c0;
  puVar16 = *(undefined4 **)(pcVar23 + 0x1c8dc);
  *(undefined4 **)(puVar8 + -0xf4) = puVar16;
  *(code **)(puVar8 + -0x110) = pcVar24;
  *(code **)(puVar8 + -4) = pcVar30;
  *(undefined1 **)(puVar8 + -8) = puVar21 + -0x1e0;
  *(byte **)(puVar8 + -0xc) = pbVar20;
  *(byte **)(puVar8 + -0x10) = unaff_s6;
  *(int **)(puVar8 + -0x14) = unaff_s5;
  *(byte **)(puVar8 + -0x18) = pbVar4;
  *(byte **)(puVar8 + -0x1c) = pbVar6;
  *(byte **)(puVar8 + -0x20) = pbVar27;
  *(int **)(puVar8 + -0x24) = piVar10;
  *(byte **)(puVar8 + -0x28) = pbVar18;
  *(byte **)(puVar8 + 4) = pbVar14;
  *(int *)(puVar8 + -0x100) = iVar19;
  *(undefined4 *)(puVar8 + -0x2c) = *puVar16;
  if (pbVar14 == (byte *)0x0) {
    if (iVar19 == 0) {
      *(undefined4 *)(puVar8 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar3 = (**(code **)(pcVar23 + 0x1c840))(*(undefined4 *)(puVar8 + -0xf8));
      pcVar24 = *(code **)(puVar8 + -0x110);
      *(int *)(puVar8 + -0x108) = iVar3;
      if (iVar3 == 0) {
        piVar13 = *(int **)(puVar8 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c7f8))();
    pcVar24 = *(code **)(puVar8 + -0x110);
    *(undefined4 *)(puVar8 + -0x108) = 0;
    *puVar16 = 0x16;
  }
  else {
    if (*(int *)(puVar8 + -0x100) == 0) {
      *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar8 + -0xf8) = *(undefined4 *)(puVar8 + 4);
    *(undefined4 *)(puVar8 + -0x108) = *(undefined4 *)(puVar8 + -0x100);
LAB_0002cdbc:
    iVar3 = *(int *)(puVar8 + -0x108);
    puVar21 = puVar8 + -0xd0;
    iVar5 = *(int *)(puVar8 + -0xf8);
    pcVar23 = *(code **)(pcVar24 + -0x7d60);
    pbVar14 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar3 + iVar5 + -1) = 0;
    iVar19 = (*pcVar23)(3,pbVar14,puVar21);
    iVar25 = *(int *)(puVar8 + -0x110);
    if (-1 < iVar19) {
      iVar19 = *(int *)(iVar25 + -0x7fc8);
      pcVar23 = *(code **)(iVar25 + -0x7d60);
      iVar29 = *(int *)(puVar8 + -0xc0);
      *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xd0);
      pbVar14 = (byte *)(iVar19 + 0x6154);
      *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xbc);
      iVar19 = (*pcVar23)(3,pbVar14,puVar21);
      iVar25 = *(int *)(puVar8 + -0x110);
      if (-1 < iVar19) {
        piVar10 = (int *)0x0;
        *(int *)(puVar8 + -0xe0) = iVar3 + iVar5 + -1;
        pbVar4 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar8 + -0xec) = *(undefined4 *)(puVar8 + -0xd0);
        *(undefined4 *)(puVar8 + -0xe4) = *(undefined4 *)(puVar8 + -0xc0);
        *(undefined4 *)(puVar8 + -0xdc) = *(undefined4 *)(puVar8 + -0xbc);
        *(int *)(puVar8 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar8 + -0x104) == *(int *)(puVar8 + -0xec)) &&
           (iVar29 == *(int *)(puVar8 + -0xe4))) {
          pcVar23 = *(code **)(iVar25 + -0x7cac);
          if (*(int *)(puVar8 + -0xfc) == *(int *)(puVar8 + -0xdc)) {
            if (piVar10 != (int *)0x0) {
              iVar3 = (**(code **)(iVar25 + -0x7d6c))(piVar10);
              iVar25 = *(int *)(puVar8 + -0x110);
              if (iVar3 != 0) goto LAB_0002d19c;
            }
            iVar3 = *(int *)(puVar8 + -0xe0);
            if (*(int *)(puVar8 + -0xe0) ==
                *(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8) + -1) {
              *(undefined1 **)(puVar8 + -0xe0) = (undefined1 *)(iVar3 + -1);
              *(undefined1 *)(iVar3 + -1) = 0x2f;
            }
            pbVar14 = *(byte **)(puVar8 + -0xe0);
            pbVar18 = (byte *)((*(int *)(puVar8 + -0x108) + *(int *)(puVar8 + -0xf8)) - (int)pbVar14
                              );
            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar8 + -0x108),pbVar14,pbVar18);
            pcVar24 = *(code **)(puVar8 + -0x110);
            if (*(int *)(puVar8 + 4) == 0) {
              pbVar14 = pbVar18;
              uVar31 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar8 + -0x108));
              pcVar24 = *(code **)(puVar8 + -0x110);
              *(undefined4 *)(puVar8 + -0x100) = uVar31;
            }
            iVar3 = *(int *)(puVar8 + -0x100);
            if (*(int *)(puVar8 + -0x100) == 0) {
              iVar3 = *(int *)(puVar8 + -0x108);
            }
            *(int *)(puVar8 + -0x108) = iVar3;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar23 = *(code **)(iVar25 + -0x7cac);
        }
        pbVar6 = *(byte **)(puVar8 + -0xe8);
        pbVar4 = (byte *)(*pcVar23)(pbVar4,pbVar6,0);
        if ((int)pbVar4 < 0) {
          pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();
          pcVar24 = *(code **)(puVar8 + -0x110);
          pbVar18 = *(byte **)pbVar27;
          if (piVar10 != (int *)0x0) {
            pcVar23 = *(code **)(pcVar24 + -0x7d6c);
LAB_0002d138:
            (*pcVar23)(piVar10);
            pcVar24 = *(code **)(puVar8 + -0x110);
          }
          pcVar23 = *(code **)(pcVar24 + -0x7bd8);
          pbVar14 = pbVar6;
          if (*(int *)(puVar8 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar6 = pbVar4;
        iVar3 = (**(code **)(*(int *)(puVar8 + -0x110) + -0x7c40))(3,pbVar4,puVar21);
        iVar19 = *(int *)(puVar8 + -0x110);
        if (iVar3 == 0) {
          if (piVar10 == (int *)0x0) {
LAB_0002cec4:
            pcVar23 = *(code **)(iVar19 + -0x7d1c);
            *(undefined4 *)(puVar8 + -0xf0) = *(undefined4 *)(puVar8 + -0xd0);
            *(undefined4 *)(puVar8 + -0xd8) = *(undefined4 *)(puVar8 + -0xc0);
            *(undefined4 *)(puVar8 + -0xd4) = *(undefined4 *)(puVar8 + -0xbc);
            piVar10 = (int *)(*pcVar23)(pbVar4);
            pbVar27 = (byte *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7cc8))();
            iVar3 = *(int *)(puVar8 + -0x110);
            if (piVar10 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar23 = *(code **)(iVar3 + -0x7d38);
LAB_0002cf18:
              pbVar27[0] = 0;
              pbVar27[1] = 0;
              pbVar27[2] = 0;
              pbVar27[3] = 0;
              piVar13 = (int *)(*pcVar23)(piVar10);
              iVar3 = *(int *)(puVar8 + -0x110);
              if (piVar13 == (int *)0x0) {
                pbVar18 = *(byte **)pbVar27;
                pcVar23 = *(code **)(iVar3 + -0x7d6c);
                if (pbVar18 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar18 = (byte *)0x2;
                    pbVar27[0] = 0;
                    pbVar27[1] = 0;
                    pbVar27[2] = 0;
                    pbVar27[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar3 + -0x7d90))(piVar10);
                  piVar13 = (int *)(**(code **)(*(int *)(puVar8 + -0x110) + -0x7d38))(piVar10);
                  iVar3 = *(int *)(puVar8 + -0x110);
                  if (piVar13 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar13 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar18 = *(byte **)pbVar27;
                  pcVar23 = *(code **)(iVar3 + -0x7d6c);
                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar13 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar13 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar3 = (**(code **)(iVar19 + -0x7d6c))(piVar10);
          iVar19 = *(int *)(puVar8 + -0x110);
          if (iVar3 == 0) goto LAB_0002cec4;
          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();
          iVar3 = *(int *)(puVar8 + -0x110);
LAB_0002d208:
          pbVar18 = *(byte **)pbVar27;
        }
        else {
          pbVar27 = (byte *)(**(code **)(iVar19 + -0x7cc8))();
          iVar3 = *(int *)(puVar8 + -0x110);
          pbVar18 = *(byte **)pbVar27;
          if (piVar10 != (int *)0x0) {
            (**(code **)(iVar3 + -0x7d6c))(piVar10);
            iVar3 = *(int *)(puVar8 + -0x110);
          }
        }
        (**(code **)(iVar3 + -0x7d68))(pbVar4);
        pcVar24 = *(code **)(puVar8 + -0x110);
        pbVar14 = pbVar6;
        if (*(int *)(puVar8 + -0x100) != 0) goto LAB_0002d150;
        pcVar23 = *(code **)(pcVar24 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar27 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
    pbVar18 = *(byte **)pbVar27;
    pcVar24 = *(code **)(puVar8 + -0x110);
    if (*(int *)(puVar8 + -0x100) == 0) {
      pcVar23 = *(code **)(pcVar24 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));
      pcVar24 = *(code **)(puVar8 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar27 = pbVar18;
    *(undefined4 *)(puVar8 + -0x108) = 0;
  }
LAB_0002d158:
  piVar13 = *(int **)(puVar8 + -0xf4);
LAB_0002d15c:
  pbVar4 = *(byte **)(puVar8 + -0x2c);
  if (pbVar4 != (byte *)*piVar13) {
    pcVar23 = *(code **)(pcVar24 + -0x7c10);
    uVar31 = 0x2d36c;
    (*pcVar23)();
    *(code **)(puVar8 + -0x140) = pcVar23 + 0x23e70;
    *(undefined4 *)(puVar8 + -300) = uVar31;
    *(byte **)(puVar8 + -0x130) = pbVar27;
    *(int **)(puVar8 + -0x134) = piVar10;
    *(byte **)(puVar8 + -0x138) = pbVar18;
    if (pbVar4 == (byte *)0x0) {
      pbVar4 = (byte *)0xffffffff;
      puVar16 = (undefined4 *)(**(code **)(pcVar23 + 0x1c1a8))();
      *puVar16 = 0x7a;
    }
    else if (pbVar4 == (byte *)0xa) {
      uVar31 = *(undefined4 *)pbVar14;
      iVar3 = (**(code **)(pcVar23 + 0x1c2c8))(uVar31,*(int *)(pcVar23 + 0x1bea8) + 0x3e68);
      if (iVar3 == 0) {
        pbVar4 = (byte *)0xffffffff;
        (**(code **)(*(int *)(puVar8 + -0x140) + -0x7d34))(uVar31);
        pcVar23 = *(code **)(*(int *)(puVar8 + -0x140) + -0x7cc8);
        pbVar14[0] = 0;
        pbVar14[1] = 0;
        pbVar14[2] = 0;
        pbVar14[3] = 0;
        puVar16 = (undefined4 *)(*pcVar23)();
        *puVar16 = 0x3d;
      }
    }
    return pbVar4;
  }
  return *(byte **)(puVar8 + -0x108);
code_r0x0002d0ec:
  pcVar23 = *(code **)(iVar3 + -0x7d38);
  if ((piVar13[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar23 = *(code **)(iVar3 + -0x7c30);
  if (bVar1) {
    if (*piVar13 == iVar29) {
      iVar19 = *(int *)(puVar8 + -0x104);
      if (piVar13[1] == *(int *)(puVar8 + -0xfc)) {
        pcVar23 = *(code **)(iVar3 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar19 = *(int *)(puVar8 + -0x104);
    }
    pcVar23 = *(code **)(iVar3 + -0x7d38);
    if (iVar19 == *(int *)(puVar8 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar23 = *(code **)(iVar3 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar14 = (byte *)((int)piVar13 + 0x13);
  *(undefined4 *)(puVar8 + -0x118) = 0x100;
  pbVar6 = pbVar4;
  iVar19 = (*pcVar23)(3,pbVar4,pbVar14,puVar21);
  iVar3 = *(int *)(puVar8 + -0x110);
  if (iVar19 != 0) goto LAB_0002cf10;
  pcVar23 = *(code **)(iVar3 + -0x7d38);
  if (((((*(uint *)(puVar8 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar8 + -0xd0) != *(int *)(puVar8 + -0x104))) ||
      (*(int *)(puVar8 + -0xc0) != iVar29)) ||
     (*(int *)(puVar8 + -0xbc) != *(int *)(puVar8 + -0xfc))) goto LAB_0002cf18;
  pbVar17 = (byte *)(*(int *)(puVar8 + -0xe0) - *(int *)(puVar8 + -0x108));
  pbVar18 = (byte *)(**(code **)(iVar3 + -0x7ca4))(pbVar14);
  iVar3 = *(int *)(puVar8 + -0x110);
  if (pbVar17 <= pbVar18) {
    pbVar28 = *(byte **)(puVar8 + -0xf8);
    if (*(int *)(puVar8 + 4) != 0) {
      pbVar18 = (byte *)0x22;
      pbVar27[0] = 0;
      pbVar27[1] = 0;
      pbVar27[2] = 0;
      pbVar27[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar20 = pbVar28;
    if (pbVar28 < pbVar18) {
      pbVar20 = pbVar18;
    }
    pbVar11 = pbVar20 + (int)pbVar28;
    pcVar23 = *(code **)(iVar3 + -0x7c78);
    if (pbVar11 < pbVar28) {
LAB_0002d338:
      pbVar18 = (byte *)0xc;
      pbVar27[0] = 0;
      pbVar27[1] = 0;
      pbVar27[2] = 0;
      pbVar27[3] = 0xc;
LAB_0002d134:
      pcVar23 = *(code **)(iVar3 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar8 + -0x104) = pbVar20;
    pbVar6 = pbVar11;
    iVar19 = (*pcVar23)(*(undefined4 *)(puVar8 + -0x108));
    iVar3 = *(int *)(puVar8 + -0x110);
    if (iVar19 == 0) goto LAB_0002d338;
    uVar31 = (**(code **)(iVar3 + -0x7be0))
                       (pbVar17 + iVar19 + *(int *)(puVar8 + -0x104),pbVar17 + iVar19,
                        *(int *)(puVar8 + -0xf8) - (int)pbVar17);
    iVar3 = *(int *)(puVar8 + -0x110);
    *(byte **)(puVar8 + -0xf8) = pbVar11;
    *(undefined4 *)(puVar8 + -0xe0) = uVar31;
    *(int *)(puVar8 + -0x108) = iVar19;
  }
  iVar3 = (**(code **)(iVar3 + -0x7be0))(*(int *)(puVar8 + -0xe0) - (int)pbVar18,pbVar14,pbVar18);
  iVar25 = *(int *)(puVar8 + -0x110);
  iVar29 = *(int *)(puVar8 + -0xd8);
  *(int *)(puVar8 + -0xe0) = iVar3 + -1;
  *(undefined1 *)(iVar3 + -1) = 0x2f;
  *(undefined4 *)(puVar8 + -0xfc) = *(undefined4 *)(puVar8 + -0xd4);
  *(undefined4 *)(puVar8 + -0x104) = *(undefined4 *)(puVar8 + -0xf0);
  goto LAB_0002ce58;
}

