
int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  byte bVar8;
  undefined1 *puVar5;
  undefined4 *puVar6;
  int *piVar7;
  int *piVar9;
  int iVar10;
  byte *pbVar11;
  int iVar12;
  byte *pbVar13;
  byte *pbVar14;
  patternlist *ppVar15;
  undefined1 *puVar16;
  uint unaff_s1;
  byte *pbVar17;
  byte *pbVar18;
  undefined *unaff_s3;
  byte *pbVar19;
  wchar_t *unaff_s5;
  wchar_t *pattern_00;
  byte *unaff_s6;
  byte *pbVar20;
  byte *pbVar21;
  undefined1 *puVar22;
  undefined *puVar23;
  code *pcVar24;
  int iVar25;
  int iVar26;
  undefined1 *puVar27;
  byte *pbVar28;
  int iVar29;
  code *pcVar30;
  code *pcVar31;
  undefined4 uVar32;
  undefined1 auStack_68 [24];
  byte *local_44;
  patternlist *local_34;
  patternlist *list;
  byte *local_2c;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar22 = auStack_68;
  pbVar20 = (byte *)(pattern + 1);
  list = (patternlist *)0x0;
  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;
  pbVar13 = (byte *)pattern;
  pbVar14 = (byte *)string;
  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern);
  puVar23 = PTR_DAT_00049208;
  iVar12 = (int)pattern[1];
  if (iVar12 != 0) {
    unaff_s5 = (wchar_t *)0x0;
    unaff_s1 = (uint)(opt - 0x3fU < 2);
    puVar3 = PTR_LAB_00049218 + 0x671c;
    local_34 = (patternlist *)&list;
    puVar5 = auStack_68;
    unaff_s6 = pbVar20;
LAB_0002b75c:
    do {
      puVar22 = puVar5;
      unaff_s3 = puVar23;
      if (iVar12 == 0x5b) {
        if (*(int *)(puVar23 + -0x5830) == 0) {
          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);
          uVar32 = 0xffffffff;
          if (iVar12 != 0) {
            uVar32 = 1;
          }
          *(undefined4 *)(puVar23 + -0x5830) = uVar32;
        }
        bVar8 = pbVar20[1];
        pbVar18 = pbVar20 + 1;
        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {
          bVar8 = pbVar20[2];
          pbVar18 = pbVar20 + 2;
        }
        if (bVar8 == 0x5d) {
          bVar8 = pbVar18[1];
          pbVar18 = pbVar18 + 1;
        }
        pbVar13 = (byte *)0x5d;
        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {
          if (bVar8 == 0) goto LAB_0002b7b4;
          pbVar18 = pbVar20;
          bVar8 = *pbVar20;
        }
        iVar12 = (int)(char)pbVar18[1];
      }
      else {
        pbVar13 = &DAT_c0000601;
        uVar4 = iVar12 - 0x21U & 0xff;
        pbVar14 = (byte *)(uint)(uVar4 < 0x20);
        if (pbVar14 == (byte *)0x0) {
          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {
            pbVar18 = local_44;
            if (unaff_s1 == 0) {
              pbVar18 = pbVar20 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;
            pbVar14 = pbVar20 + -(int)unaff_s6;
            pbVar17 = pbVar20 + 1;
            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar27 = puVar22 + iVar25;
            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);
            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);
            iVar12 = (int)(char)pbVar20[1];
            *puVar5 = 0;
            ppVar15->next = (patternlist *)0x0;
            local_34->next = ppVar15;
            pbVar13 = unaff_s6;
            unaff_s6 = pbVar17;
            pbVar20 = pbVar17;
            puVar22 = puVar22 + iVar25;
            local_34 = ppVar15;
            puVar5 = puVar27;
            if (iVar12 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar12 = (int)(char)pbVar20[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {
            iVar12 = (int)(char)pbVar20[1];
            if (iVar12 != 0x28) goto joined_r0x0002b91c;
            pbVar14 = (byte *)0x1;
            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);
            pbVar20 = pbVar20 + 1;
            uVar4 = 7;
          }
          if (iVar12 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (wchar_t *)0x0) {
            if (1 < opt - 0x3fU) {
              local_44 = pbVar20 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar5 = (undefined1 *)
                       (*(code *)PTR_mempcpy_000495e4)
                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);
              *puVar5 = 0;
              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;
              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);
              if (list == (patternlist *)0x0) {
                iVar12 = (*(code *)PTR___assert_fail_00049460)
                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,
                                    PTR_LAB_00049218 + 0x7d60);
                return iVar12;
              }
              if (pbVar20[-1] != 0x29) {
                iVar12 = (*(code *)PTR___assert_fail_00049460)
                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,
                                    PTR_LAB_00049218 + 0x7d60);
                return iVar12;
              }
              if (0x1f < opt - 0x21U) {
                iVar12 = (*(code *)PTR___assert_fail_00049460)
                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,
                                    PTR_LAB_00049218 + 0x7d60);
                return iVar12;
              }
                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */
                    /* WARNING: Treating indirect jump as call */
              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()
              ;
              return iVar12;
            }
            break;
          }
          iVar12 = (int)(char)pbVar20[1];
          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);
        }
joined_r0x0002b91c:
        pbVar20 = pbVar20 + 1;
      }
      puVar5 = puVar22;
    } while (iVar12 != 0);
  }
LAB_0002b7b4:
  if (local_2c == *(byte **)puVar2) {
    return -1;
  }
  pcVar30 = internal_fnmatch;
  pbVar18 = local_2c;
  puVar23 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puVar3 = puVar23 + 0x25450;
  puVar6 = *(undefined4 **)(puVar23 + 0x1d86c);
  *(undefined1 **)(puVar22 + -8) = auStack_68;
  *(undefined **)(puVar22 + -0x1c) = unaff_s3;
  *(undefined **)(puVar22 + -0x160) = puVar3;
  *(code **)(puVar22 + -4) = pcVar30;
  *(byte **)(puVar22 + -0xc) = pbVar20;
  *(byte **)(puVar22 + -0x10) = unaff_s6;
  *(wchar_t **)(puVar22 + -0x14) = unaff_s5;
  *(char **)(puVar22 + -0x18) = string;
  *(undefined **)(puVar22 + -0x20) = puVar2;
  *(uint *)(puVar22 + -0x24) = unaff_s1;
  *(char **)(puVar22 + -0x28) = pattern;
  *(undefined4 **)(puVar22 + -0x144) = puVar6;
  *(byte **)(puVar22 + -0x154) = pbVar18 + 1;
  pbVar17 = (byte *)(uint)*pbVar18;
  *(undefined4 *)(puVar22 + -0x2c) = *puVar6;
  pbVar21 = *(byte **)(puVar23 + 0x1d488);
  pbVar20 = pbVar14;
  pbVar28 = pbVar13;
  if (pbVar17 != (byte *)0x0) {
    uVar4 = *(uint *)(puVar22 + 0x10);
    unaff_s1 = uVar4 & 2;
    pattern = (char *)(uVar4 & 0x10);
    *(uint *)(puVar22 + -0x140) = uVar4 & 5;
    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);
    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;
    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;
    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;
    string = (char *)pbVar18;
    unaff_s6 = (byte *)string_end;
    do {
      pbVar18 = pbVar17;
      if (pattern != (char *)0x0) {
        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar22 + -0x160);
        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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 */
        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +
                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();
        return iVar12;
      }
      uVar4 = 1;
      pbVar17 = pbVar18;
      if (pbVar28 == pbVar14) goto LAB_0002c064;
      pbVar17 = (byte *)(uint)*pbVar28;
      if (pattern != (char *)0x0) {
        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar22 + -0x160);
        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);
      }
      uVar4 = 1;
      unaff_s6 = pbVar18;
      if (pbVar17 != pbVar18) goto LAB_0002c064;
      string = *(char **)(puVar22 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar17 = (byte *)(uint)(byte)*string;
      pbVar28 = pbVar28 + 1;
      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;
    } while (pbVar17 != (byte *)0x0);
  }
  uVar4 = 0;
  if (pbVar28 != pbVar14) {
    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);
    if ((byte *)string == (byte *)0x0) {
      uVar4 = 1;
    }
    else {
      uVar4 = (uint)(*pbVar28 != 0x2f);
    }
  }
LAB_0002c064:
  iVar12 = *(int *)(puVar22 + -0x2c);
  if (iVar12 == **(int **)(puVar22 + -0x144)) {
    return uVar4;
  }
  pcVar30 = *(code **)(puVar3 + -0x7c10);
  pcVar31 = gnu_fnmatch;
  (*pcVar30)();
  puVar5 = puVar22 + -0x1e0;
  pcVar24 = *(code **)(pcVar30 + 0x1cbc4);
  *(uint *)(puVar22 + -0x19c) = unaff_s1;
  piVar7 = *(int **)(pcVar30 + 0x1cc28);
  *(byte **)(puVar22 + -0x180) = pbVar28;
  *(byte **)(puVar22 + -0x198) = pbVar17;
  *(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c;
  *(code **)(puVar22 + -0x17c) = pcVar31;
  *(byte **)(puVar22 + -0x184) = pbVar21;
  *(byte **)(puVar22 + -0x188) = unaff_s6;
  *(wchar_t **)(puVar22 + -0x18c) = unaff_s5;
  *(char **)(puVar22 + -400) = string;
  *(byte **)(puVar22 + -0x194) = pbVar14;
  *(char **)(puVar22 + -0x1a0) = pattern;
  *(int *)(puVar22 + -0x1b4) = iVar12;
  *(byte **)(puVar22 + -0x1b8) = pbVar13;
  *(int *)(puVar22 + -0x1a4) = *piVar7;
  iVar12 = (*pcVar24)();
  iVar25 = *(int *)(puVar22 + -0x1c8);
  if (iVar12 == 1) {
LAB_0002ca44:
    pbVar13 = *(byte **)(puVar22 + -0x1b8);
    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);
    *(byte **)(puVar22 + -0x1d0) = pbVar20;
    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,
                                       (char *)(pbVar13 + iVar12),
                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),
                                       *(int *)(puVar22 + -0x1d0));
    iVar12 = *(int *)(puVar22 + -0x1c8);
    puVar5 = puVar22 + -0x1e0;
  }
  else {
    puVar16 = puVar22 + -0x1ac;
    pcVar30 = *(code **)(iVar25 + -0x7ba4);
    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);
    *(undefined4 *)(puVar22 + -0x1ac) = 0;
    *(undefined4 *)(puVar22 + -0x1a8) = 0;
    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);
    pbVar14 = (byte *)(iVar12 + 1);
    iVar25 = *(int *)(puVar22 + -0x1c8);
    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;
    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);
    uVar32 = 0x129;
    iVar25 = *(int *)(puVar22 + -0x1c8);
    if (iVar12 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar22 + -0x1b8;
    pbVar13 = unaff_s6;
    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);
    pbVar21 = (byte *)string + 1;
    iVar25 = *(int *)(puVar22 + -0x1c8);
    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;
    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);
    iVar25 = *(int *)(puVar22 + -0x1c8);
    if (iVar12 == 0) {
      uVar32 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar18 = pbVar14 + (int)pbVar21;
    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {
LAB_0002cc10:
      pbVar18 = (byte *)0xffffffff;
      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();
      iVar12 = *(int *)(puVar22 + -0x1c8);
      *puVar6 = 0xc;
    }
    else if (pbVar18 < (byte *)0x7d0) {
      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);
      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);
      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);
      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);
      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);
      iVar25 = *(int *)(puVar22 + -0x1c8);
      if (iVar12 == 0) {
LAB_0002cd10:
        do {
          uVar32 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar25 + -0x7d80))
                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,
                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);
      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;
      pbVar13 = pbVar17;
      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,
                                          (wchar_t *)(pbVar17 + (int)string * 4),
                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),
                                          *(int *)(puVar22 + iVar10 + -0x1d0));
      iVar12 = *(int *)(puVar22 + -0x1c8);
      pbVar14 = pbVar17;
      unaff_s5 = pattern_00;
      puVar5 = puVar22 + iVar10 + -0x1e0;
    }
    else {
      iVar12 = (**(code **)(iVar25 + -0x7c80))();
      iVar25 = *(int *)(puVar22 + -0x1c8);
      if (iVar12 == 0) goto LAB_0002cc10;
      pcVar30 = *(code **)(iVar25 + -0x7ba4);
      *(int *)(puVar22 + -0x1bc) = iVar12;
      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);
      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);
      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);
      iVar25 = *(int *)(puVar22 + -0x1c8);
      if (iVar12 == 0) goto LAB_0002cd10;
      pcVar30 = *(code **)(iVar25 + -0x7ba4);
      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);
      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);
      *(byte **)(puVar22 + -0x1d0) = pbVar20;
      pbVar13 = pbVar17;
      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,
                                          (wchar_t *)(pbVar17 + (int)string * 4),
                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),
                                          *(int *)(puVar22 + -0x1d0));
      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));
      iVar12 = *(int *)(puVar22 + -0x1c8);
      pbVar14 = pbVar17;
      puVar5 = puVar22 + -0x1e0;
    }
  }
  iVar25 = *(int *)(puVar22 + -0x1a4);
  pcVar30 = *(code **)(iVar12 + -0x7c10);
  if (iVar25 == *piVar7) {
    return (int)pbVar18;
  }
  pcVar31 = rpl_getcwd;
  (*pcVar30)();
  pcVar24 = pcVar30 + 0x244c0;
  puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc);
  *(undefined4 **)(puVar5 + -0xf4) = puVar6;
  *(code **)(puVar5 + -0x110) = pcVar24;
  *(code **)(puVar5 + -4) = pcVar31;
  *(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0;
  *(byte **)(puVar5 + -0xc) = pbVar21;
  *(byte **)(puVar5 + -0x10) = unaff_s6;
  *(wchar_t **)(puVar5 + -0x14) = unaff_s5;
  *(char **)(puVar5 + -0x18) = string;
  *(byte **)(puVar5 + -0x1c) = pbVar14;
  *(byte **)(puVar5 + -0x20) = pbVar20;
  *(int **)(puVar5 + -0x24) = piVar7;
  *(byte **)(puVar5 + -0x28) = pbVar18;
  *(byte **)(puVar5 + 4) = pbVar13;
  *(int *)(puVar5 + -0x100) = iVar25;
  *(undefined4 *)(puVar5 + -0x2c) = *puVar6;
  if (pbVar13 == (byte *)0x0) {
    if (iVar25 == 0) {
      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));
      pcVar24 = *(code **)(puVar5 + -0x110);
      *(int *)(puVar5 + -0x108) = iVar12;
      if (iVar12 == 0) {
        piVar9 = *(int **)(puVar5 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();
    pcVar24 = *(code **)(puVar5 + -0x110);
    *(undefined4 *)(puVar5 + -0x108) = 0;
    *puVar6 = 0x16;
  }
  else {
    if (*(int *)(puVar5 + -0x100) == 0) {
      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);
    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);
LAB_0002cdbc:
    iVar12 = *(int *)(puVar5 + -0x108);
    puVar22 = puVar5 + -0xd0;
    iVar10 = *(int *)(puVar5 + -0xf8);
    pcVar30 = *(code **)(pcVar24 + -0x7d60);
    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;
    iVar25 = (*pcVar30)(3,pbVar13,puVar22);
    iVar26 = *(int *)(puVar5 + -0x110);
    if (-1 < iVar25) {
      iVar25 = *(int *)(iVar26 + -0x7fc8);
      pcVar30 = *(code **)(iVar26 + -0x7d60);
      iVar29 = *(int *)(puVar5 + -0xc0);
      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);
      pbVar13 = (byte *)(iVar25 + 0x6154);
      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);
      iVar25 = (*pcVar30)(3,pbVar13,puVar22);
      iVar26 = *(int *)(puVar5 + -0x110);
      if (-1 < iVar25) {
        piVar7 = (int *)0x0;
        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;
        pbVar14 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);
        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);
        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);
        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&
           (iVar29 == *(int *)(puVar5 + -0xe4))) {
          pcVar30 = *(code **)(iVar26 + -0x7cac);
          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {
            if (piVar7 != (int *)0x0) {
              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);
              iVar26 = *(int *)(puVar5 + -0x110);
              if (iVar12 != 0) goto LAB_0002d19c;
            }
            iVar12 = *(int *)(puVar5 + -0xe0);
            if (*(int *)(puVar5 + -0xe0) ==
                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {
              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);
              *(undefined1 *)(iVar12 + -1) = 0x2f;
            }
            pbVar13 = *(byte **)(puVar5 + -0xe0);
            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13
                              );
            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);
            pcVar24 = *(code **)(puVar5 + -0x110);
            if (*(int *)(puVar5 + 4) == 0) {
              pbVar13 = pbVar18;
              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));
              pcVar24 = *(code **)(puVar5 + -0x110);
              *(undefined4 *)(puVar5 + -0x100) = uVar32;
            }
            iVar12 = *(int *)(puVar5 + -0x100);
            if (*(int *)(puVar5 + -0x100) == 0) {
              iVar12 = *(int *)(puVar5 + -0x108);
            }
            *(int *)(puVar5 + -0x108) = iVar12;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar30 = *(code **)(iVar26 + -0x7cac);
        }
        pbVar17 = *(byte **)(puVar5 + -0xe8);
        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);
        if ((int)pbVar14 < 0) {
          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();
          pcVar24 = *(code **)(puVar5 + -0x110);
          pbVar18 = *(byte **)pbVar20;
          if (piVar7 != (int *)0x0) {
            pcVar30 = *(code **)(pcVar24 + -0x7d6c);
LAB_0002d138:
            (*pcVar30)(piVar7);
            pcVar24 = *(code **)(puVar5 + -0x110);
          }
          pcVar30 = *(code **)(pcVar24 + -0x7bd8);
          pbVar13 = pbVar17;
          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar17 = pbVar14;
        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);
        iVar25 = *(int *)(puVar5 + -0x110);
        if (iVar12 == 0) {
          if (piVar7 == (int *)0x0) {
LAB_0002cec4:
            pcVar30 = *(code **)(iVar25 + -0x7d1c);
            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);
            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);
            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);
            piVar7 = (int *)(*pcVar30)(pbVar14);
            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();
            iVar12 = *(int *)(puVar5 + -0x110);
            if (piVar7 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar30 = *(code **)(iVar12 + -0x7d38);
LAB_0002cf18:
              pbVar20[0] = 0;
              pbVar20[1] = 0;
              pbVar20[2] = 0;
              pbVar20[3] = 0;
              piVar9 = (int *)(*pcVar30)(piVar7);
              iVar12 = *(int *)(puVar5 + -0x110);
              if (piVar9 == (int *)0x0) {
                pbVar18 = *(byte **)pbVar20;
                pcVar30 = *(code **)(iVar12 + -0x7d6c);
                if (pbVar18 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar18 = (byte *)0x2;
                    pbVar20[0] = 0;
                    pbVar20[1] = 0;
                    pbVar20[2] = 0;
                    pbVar20[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar12 + -0x7d90))(piVar7);
                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);
                  iVar12 = *(int *)(puVar5 + -0x110);
                  if (piVar9 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar18 = *(byte **)pbVar20;
                  pcVar30 = *(code **)(iVar12 + -0x7d6c);
                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);
          iVar25 = *(int *)(puVar5 + -0x110);
          if (iVar12 == 0) goto LAB_0002cec4;
          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
          iVar12 = *(int *)(puVar5 + -0x110);
LAB_0002d208:
          pbVar18 = *(byte **)pbVar20;
        }
        else {
          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
          iVar12 = *(int *)(puVar5 + -0x110);
          pbVar18 = *(byte **)pbVar20;
          if (piVar7 != (int *)0x0) {
            (**(code **)(iVar12 + -0x7d6c))(piVar7);
            iVar12 = *(int *)(puVar5 + -0x110);
          }
        }
        (**(code **)(iVar12 + -0x7d68))(pbVar14);
        pcVar24 = *(code **)(puVar5 + -0x110);
        pbVar13 = pbVar17;
        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;
        pcVar30 = *(code **)(pcVar24 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();
    pbVar18 = *(byte **)pbVar20;
    pcVar24 = *(code **)(puVar5 + -0x110);
    if (*(int *)(puVar5 + -0x100) == 0) {
      pcVar30 = *(code **)(pcVar24 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));
      pcVar24 = *(code **)(puVar5 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar20 = pbVar18;
    *(undefined4 *)(puVar5 + -0x108) = 0;
  }
LAB_0002d158:
  piVar9 = *(int **)(puVar5 + -0xf4);
LAB_0002d15c:
  iVar12 = *(int *)(puVar5 + -0x2c);
  if (iVar12 != *piVar9) {
    pcVar30 = *(code **)(pcVar24 + -0x7c10);
    uVar32 = 0x2d36c;
    (*pcVar30)();
    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;
    *(undefined4 *)(puVar5 + -300) = uVar32;
    *(byte **)(puVar5 + -0x130) = pbVar20;
    *(int **)(puVar5 + -0x134) = piVar7;
    *(byte **)(puVar5 + -0x138) = pbVar18;
    if (iVar12 == 0) {
      iVar12 = -1;
      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();
      *puVar6 = 0x7a;
    }
    else if (iVar12 == 10) {
      uVar32 = *(undefined4 *)pbVar13;
      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);
      if (iVar25 == 0) {
        iVar12 = -1;
        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);
        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);
        pbVar13[0] = 0;
        pbVar13[1] = 0;
        pbVar13[2] = 0;
        pbVar13[3] = 0;
        puVar6 = (undefined4 *)(*pcVar30)();
        *puVar6 = 0x3d;
      }
    }
    return iVar12;
  }
  return *(int *)(puVar5 + -0x108);
code_r0x0002d0ec:
  pcVar30 = *(code **)(iVar12 + -0x7d38);
  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar30 = *(code **)(iVar12 + -0x7c30);
  if (bVar1) {
    if (*piVar9 == iVar29) {
      iVar25 = *(int *)(puVar5 + -0x104);
      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {
        pcVar30 = *(code **)(iVar12 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar25 = *(int *)(puVar5 + -0x104);
    }
    pcVar30 = *(code **)(iVar12 + -0x7d38);
    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar30 = *(code **)(iVar12 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar13 = (byte *)((int)piVar9 + 0x13);
  *(undefined4 *)(puVar5 + -0x118) = 0x100;
  pbVar17 = pbVar14;
  iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22);
  iVar12 = *(int *)(puVar5 + -0x110);
  if (iVar25 != 0) goto LAB_0002cf10;
  pcVar30 = *(code **)(iVar12 + -0x7d38);
  if (((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||
      (*(int *)(puVar5 + -0xc0) != iVar29)) ||
     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))) goto LAB_0002cf18;
  pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108));
  pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13);
  iVar12 = *(int *)(puVar5 + -0x110);
  if (pbVar28 <= pbVar18) {
    pbVar21 = *(byte **)(puVar5 + -0xf8);
    if (*(int *)(puVar5 + 4) != 0) {
      pbVar18 = (byte *)0x22;
      pbVar20[0] = 0;
      pbVar20[1] = 0;
      pbVar20[2] = 0;
      pbVar20[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar11 = pbVar21;
    if (pbVar21 < pbVar18) {
      pbVar11 = pbVar18;
    }
    pbVar19 = pbVar11 + (int)pbVar21;
    pcVar30 = *(code **)(iVar12 + -0x7c78);
    if (pbVar19 < pbVar21) {
LAB_0002d338:
      pbVar18 = (byte *)0xc;
      pbVar20[0] = 0;
      pbVar20[1] = 0;
      pbVar20[2] = 0;
      pbVar20[3] = 0xc;
LAB_0002d134:
      pcVar30 = *(code **)(iVar12 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar5 + -0x104) = pbVar11;
    pbVar17 = pbVar19;
    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));
    iVar12 = *(int *)(puVar5 + -0x110);
    if (iVar25 == 0) goto LAB_0002d338;
    uVar32 = (**(code **)(iVar12 + -0x7be0))
                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,
                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);
    iVar12 = *(int *)(puVar5 + -0x110);
    *(byte **)(puVar5 + -0xf8) = pbVar19;
    *(undefined4 *)(puVar5 + -0xe0) = uVar32;
    *(int *)(puVar5 + -0x108) = iVar25;
  }
  iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18);
  iVar26 = *(int *)(puVar5 + -0x110);
  iVar29 = *(int *)(puVar5 + -0xd8);
  *(int *)(puVar5 + -0xe0) = iVar12 + -1;
  *(undefined1 *)(iVar12 + -1) = 0x2f;
  *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4);
  *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0);
  goto LAB_0002ce58;
}



byte * FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  byte bVar8;
  undefined4 *puVar5;
  int *piVar6;
  byte *pbVar7;
  int *piVar9;
  int iVar10;
  int iVar11;
  byte *pbVar12;
  byte *pbVar13;
  undefined1 *puVar14;
  uint unaff_s1;
  byte *pbVar15;
  byte *pbVar16;
  undefined *unaff_s3;
  byte *pbVar17;
  undefined1 *unaff_s5;
  undefined1 *puVar18;
  byte *unaff_s6;
  byte *pbVar19;
  byte *pbVar20;
  undefined1 *puVar21;
  undefined *puVar22;
  code *pcVar23;
  int iVar24;
  int iVar25;
  undefined1 *puVar26;
  byte *pbVar27;
  int iVar28;
  code *pcVar29;
  code *pcVar30;
  undefined4 uVar31;
  undefined1 auStack_68 [24];
  byte *local_44;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar21 = auStack_68;
  pbVar19 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;
  pbVar12 = param_2;
  pbVar13 = param_3;
  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);
  puVar22 = PTR_DAT_00049208;
  iVar11 = (int)(char)param_2[1];
  if (iVar11 != 0) {
    unaff_s5 = (undefined1 *)0x0;
    unaff_s1 = (uint)(param_1 - 0x3fU < 2);
    puVar3 = PTR_LAB_00049218 + 0x671c;
    local_34 = &local_30;
    puVar18 = auStack_68;
    unaff_s6 = pbVar19;
LAB_0002b75c:
    do {
      puVar21 = puVar18;
      unaff_s3 = puVar22;
      if (iVar11 == 0x5b) {
        if (*(int *)(puVar22 + -0x5830) == 0) {
          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);
          uVar31 = 0xffffffff;
          if (iVar11 != 0) {
            uVar31 = 1;
          }
          *(undefined4 *)(puVar22 + -0x5830) = uVar31;
        }
        bVar8 = pbVar19[1];
        pbVar16 = pbVar19 + 1;
        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {
          bVar8 = pbVar19[2];
          pbVar16 = pbVar19 + 2;
        }
        if (bVar8 == 0x5d) {
          bVar8 = pbVar16[1];
          pbVar16 = pbVar16 + 1;
        }
        pbVar12 = (byte *)0x5d;
        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {
          if (bVar8 == 0) goto LAB_0002b7b4;
          pbVar16 = pbVar19;
          bVar8 = *pbVar19;
        }
        iVar11 = (int)(char)pbVar16[1];
      }
      else {
        pbVar12 = &DAT_c0000601;
        uVar4 = iVar11 - 0x21U & 0xff;
        pbVar13 = (byte *)(uint)(uVar4 < 0x20);
        if (pbVar13 == (byte *)0x0) {
          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {
            pbVar16 = local_44;
            if (unaff_s1 == 0) {
              pbVar16 = pbVar19 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;
            pbVar13 = pbVar19 + -(int)unaff_s6;
            pbVar15 = pbVar19 + 1;
            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar26 = puVar21 + iVar24;
            piVar6 = (int *)(puVar21 + iVar24 + 0x18);
            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);
            iVar11 = (int)(char)pbVar19[1];
            *puVar18 = 0;
            *piVar6 = 0;
            *local_34 = (int)piVar6;
            pbVar12 = unaff_s6;
            unaff_s6 = pbVar15;
            pbVar19 = pbVar15;
            puVar21 = puVar21 + iVar24;
            local_34 = piVar6;
            puVar18 = puVar26;
            if (iVar11 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar11 = (int)(char)pbVar19[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {
            iVar11 = (int)(char)pbVar19[1];
            if (iVar11 != 0x28) goto joined_r0x0002b91c;
            pbVar13 = (byte *)0x1;
            unaff_s5 = unaff_s5 + 1;
            pbVar19 = pbVar19 + 1;
            uVar4 = 7;
          }
          if (iVar11 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (undefined1 *)0x0) {
            if (1 < param_1 - 0x3fU) {
              local_44 = pbVar19 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar18 = (undefined1 *)
                        (*(code *)PTR_mempcpy_000495e4)
                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);
              *puVar18 = 0;
              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;
              *local_34 = (int)(puVar21 + iVar11 + 0x18);
              if (local_30 == 0) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,
                                             0x454,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
              if (pbVar19[-1] != 0x29) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,
                                             0x455,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
              if (0x1f < param_1 - 0x21U) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,
                                             0x4ad,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */
                    /* WARNING: Treating indirect jump as call */
              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +
                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();
              return pbVar19;
            }
            break;
          }
          iVar11 = (int)(char)pbVar19[1];
          unaff_s5 = unaff_s5 + -1;
        }
joined_r0x0002b91c:
        pbVar19 = pbVar19 + 1;
      }
      puVar18 = puVar21;
    } while (iVar11 != 0);
  }
LAB_0002b7b4:
  if (local_2c == *(byte **)puVar2) {
    return (byte *)0xffffffff;
  }
  pcVar29 = FUN_0002bd90;
  pbVar16 = local_2c;
  puVar22 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puVar3 = puVar22 + 0x25450;
  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);
  *(undefined1 **)(puVar21 + -8) = auStack_68;
  *(undefined **)(puVar21 + -0x1c) = unaff_s3;
  *(undefined **)(puVar21 + -0x160) = puVar3;
  *(code **)(puVar21 + -4) = pcVar29;
  *(byte **)(puVar21 + -0xc) = pbVar19;
  *(byte **)(puVar21 + -0x10) = unaff_s6;
  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;
  *(byte **)(puVar21 + -0x18) = param_3;
  *(undefined **)(puVar21 + -0x20) = puVar2;
  *(uint *)(puVar21 + -0x24) = unaff_s1;
  *(byte **)(puVar21 + -0x28) = param_2;
  *(undefined4 **)(puVar21 + -0x144) = puVar5;
  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;
  pbVar15 = (byte *)(uint)*pbVar16;
  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;
  pbVar20 = *(byte **)(puVar22 + 0x1d488);
  pbVar19 = pbVar13;
  pbVar27 = pbVar12;
  if (pbVar15 != (byte *)0x0) {
    uVar4 = *(uint *)(puVar21 + 0x10);
    unaff_s1 = uVar4 & 2;
    param_2 = (byte *)(uVar4 & 0x10);
    *(uint *)(puVar21 + -0x140) = uVar4 & 5;
    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);
    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;
    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;
    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;
    param_3 = pbVar16;
    unaff_s6 = param_4;
    do {
      pbVar16 = pbVar15;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar21 + -0x160);
        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);
      }
      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +
                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();
        return pbVar19;
      }
      pbVar7 = (byte *)0x1;
      pbVar15 = pbVar16;
      if (pbVar27 == pbVar13) goto LAB_0002c064;
      pbVar15 = (byte *)(uint)*pbVar27;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar21 + -0x160);
        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);
      }
      pbVar7 = (byte *)0x1;
      unaff_s6 = pbVar16;
      if (pbVar15 != pbVar16) goto LAB_0002c064;
      param_3 = *(byte **)(puVar21 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar15 = (byte *)(uint)*param_3;
      pbVar27 = pbVar27 + 1;
      *(byte **)(puVar21 + -0x154) = param_3 + 1;
    } while (pbVar15 != (byte *)0x0);
  }
  pbVar7 = (byte *)0x0;
  if (pbVar27 != pbVar13) {
    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);
    if (param_3 == (byte *)0x0) {
      pbVar7 = (byte *)0x1;
    }
    else {
      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);
    }
  }
LAB_0002c064:
  iVar11 = *(int *)(puVar21 + -0x2c);
  if (iVar11 == **(int **)(puVar21 + -0x144)) {
    return pbVar7;
  }
  pcVar29 = *(code **)(puVar3 + -0x7c10);
  pcVar30 = gnu_fnmatch;
  (*pcVar29)();
  puVar18 = puVar21 + -0x1e0;
  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);
  *(uint *)(puVar21 + -0x19c) = unaff_s1;
  piVar6 = *(int **)(pcVar29 + 0x1cc28);
  *(byte **)(puVar21 + -0x180) = pbVar27;
  *(byte **)(puVar21 + -0x198) = pbVar15;
  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;
  *(code **)(puVar21 + -0x17c) = pcVar30;
  *(byte **)(puVar21 + -0x184) = pbVar20;
  *(byte **)(puVar21 + -0x188) = unaff_s6;
  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;
  *(byte **)(puVar21 + -400) = param_3;
  *(byte **)(puVar21 + -0x194) = pbVar13;
  *(byte **)(puVar21 + -0x1a0) = param_2;
  *(int *)(puVar21 + -0x1b4) = iVar11;
  *(byte **)(puVar21 + -0x1b8) = pbVar12;
  *(int *)(puVar21 + -0x1a4) = *piVar6;
  iVar11 = (*pcVar23)();
  iVar24 = *(int *)(puVar21 + -0x1c8);
  if (iVar11 == 1) {
LAB_0002ca44:
    pbVar12 = *(byte **)(puVar21 + -0x1b8);
    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);
    *(byte **)(puVar21 + -0x1d0) = pbVar19;
    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,
                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);
    iVar11 = *(int *)(puVar21 + -0x1c8);
    puVar18 = puVar21 + -0x1e0;
  }
  else {
    puVar14 = puVar21 + -0x1ac;
    pcVar29 = *(code **)(iVar24 + -0x7ba4);
    unaff_s5 = puVar21 + -0x1b4;
    *(undefined4 *)(puVar21 + -0x1ac) = 0;
    *(undefined4 *)(puVar21 + -0x1a8) = 0;
    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);
    pbVar13 = (byte *)(iVar11 + 1);
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;
    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);
    uVar31 = 0x129;
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (iVar11 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar21 + -0x1b8;
    pbVar12 = unaff_s6;
    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);
    pbVar20 = param_3 + 1;
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;
    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (iVar11 == 0) {
      uVar31 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar16 = pbVar13 + (int)pbVar20;
    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {
LAB_0002cc10:
      pbVar16 = (byte *)0xffffffff;
      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();
      iVar11 = *(int *)(puVar21 + -0x1c8);
      *puVar5 = 0xc;
    }
    else if (pbVar16 < (byte *)0x7d0) {
      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);
      puVar18 = puVar21 + iVar10 + -0x1c8;
      pbVar15 = puVar18 + (int)pbVar13 * 4;
      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);
      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) {
LAB_0002cd10:
        do {
          uVar31 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar24 + -0x7d80))
                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,
                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);
      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;
      pbVar12 = pbVar15;
      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,
                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);
      iVar11 = *(int *)(puVar21 + -0x1c8);
      pbVar13 = pbVar15;
      unaff_s5 = puVar18;
      puVar18 = puVar21 + iVar10 + -0x1e0;
    }
    else {
      iVar11 = (**(code **)(iVar24 + -0x7c80))();
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) goto LAB_0002cc10;
      pcVar29 = *(code **)(iVar24 + -0x7ba4);
      *(int *)(puVar21 + -0x1bc) = iVar11;
      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);
      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);
      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) goto LAB_0002cd10;
      pcVar29 = *(code **)(iVar24 + -0x7ba4);
      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);
      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);
      *(byte **)(puVar21 + -0x1d0) = pbVar19;
      pbVar12 = pbVar15;
      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,
                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f
                                    );
      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));
      iVar11 = *(int *)(puVar21 + -0x1c8);
      pbVar13 = pbVar15;
      puVar18 = puVar21 + -0x1e0;
    }
  }
  iVar24 = *(int *)(puVar21 + -0x1a4);
  pcVar29 = *(code **)(iVar11 + -0x7c10);
  if (iVar24 == *piVar6) {
    return pbVar16;
  }
  pcVar30 = rpl_getcwd;
  (*pcVar29)();
  pcVar23 = pcVar29 + 0x244c0;
  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);
  *(undefined4 **)(puVar18 + -0xf4) = puVar5;
  *(code **)(puVar18 + -0x110) = pcVar23;
  *(code **)(puVar18 + -4) = pcVar30;
  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;
  *(byte **)(puVar18 + -0xc) = pbVar20;
  *(byte **)(puVar18 + -0x10) = unaff_s6;
  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;
  *(byte **)(puVar18 + -0x18) = param_3;
  *(byte **)(puVar18 + -0x1c) = pbVar13;
  *(byte **)(puVar18 + -0x20) = pbVar19;
  *(int **)(puVar18 + -0x24) = piVar6;
  *(byte **)(puVar18 + -0x28) = pbVar16;
  *(byte **)(puVar18 + 4) = pbVar12;
  *(int *)(puVar18 + -0x100) = iVar24;
  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;
  if (pbVar12 == (byte *)0x0) {
    if (iVar24 == 0) {
      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));
      pcVar23 = *(code **)(puVar18 + -0x110);
      *(int *)(puVar18 + -0x108) = iVar11;
      if (iVar11 == 0) {
        piVar9 = *(int **)(puVar18 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();
    pcVar23 = *(code **)(puVar18 + -0x110);
    *(undefined4 *)(puVar18 + -0x108) = 0;
    *puVar5 = 0x16;
  }
  else {
    if (*(int *)(puVar18 + -0x100) == 0) {
      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);
    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);
LAB_0002cdbc:
    iVar11 = *(int *)(puVar18 + -0x108);
    puVar21 = puVar18 + -0xd0;
    iVar10 = *(int *)(puVar18 + -0xf8);
    pcVar29 = *(code **)(pcVar23 + -0x7d60);
    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;
    iVar24 = (*pcVar29)(3,pbVar12,puVar21);
    iVar25 = *(int *)(puVar18 + -0x110);
    if (-1 < iVar24) {
      iVar24 = *(int *)(iVar25 + -0x7fc8);
      pcVar29 = *(code **)(iVar25 + -0x7d60);
      iVar28 = *(int *)(puVar18 + -0xc0);
      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);
      pbVar12 = (byte *)(iVar24 + 0x6154);
      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);
      iVar24 = (*pcVar29)(3,pbVar12,puVar21);
      iVar25 = *(int *)(puVar18 + -0x110);
      if (-1 < iVar24) {
        piVar6 = (int *)0x0;
        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;
        pbVar13 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);
        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);
        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);
        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&
           (iVar28 == *(int *)(puVar18 + -0xe4))) {
          pcVar29 = *(code **)(iVar25 + -0x7cac);
          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {
            if (piVar6 != (int *)0x0) {
              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);
              iVar25 = *(int *)(puVar18 + -0x110);
              if (iVar11 != 0) goto LAB_0002d19c;
            }
            iVar11 = *(int *)(puVar18 + -0xe0);
            if (*(int *)(puVar18 + -0xe0) ==
                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {
              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);
              *(undefined1 *)(iVar11 + -1) = 0x2f;
            }
            pbVar12 = *(byte **)(puVar18 + -0xe0);
            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -
                              (int)pbVar12);
            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);
            pcVar23 = *(code **)(puVar18 + -0x110);
            if (*(int *)(puVar18 + 4) == 0) {
              pbVar12 = pbVar16;
              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));
              pcVar23 = *(code **)(puVar18 + -0x110);
              *(undefined4 *)(puVar18 + -0x100) = uVar31;
            }
            iVar11 = *(int *)(puVar18 + -0x100);
            if (*(int *)(puVar18 + -0x100) == 0) {
              iVar11 = *(int *)(puVar18 + -0x108);
            }
            *(int *)(puVar18 + -0x108) = iVar11;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar29 = *(code **)(iVar25 + -0x7cac);
        }
        pbVar15 = *(byte **)(puVar18 + -0xe8);
        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);
        if ((int)pbVar13 < 0) {
          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();
          pcVar23 = *(code **)(puVar18 + -0x110);
          pbVar16 = *(byte **)pbVar19;
          if (piVar6 != (int *)0x0) {
            pcVar29 = *(code **)(pcVar23 + -0x7d6c);
LAB_0002d138:
            (*pcVar29)(piVar6);
            pcVar23 = *(code **)(puVar18 + -0x110);
          }
          pcVar29 = *(code **)(pcVar23 + -0x7bd8);
          pbVar12 = pbVar15;
          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar15 = pbVar13;
        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);
        iVar24 = *(int *)(puVar18 + -0x110);
        if (iVar11 == 0) {
          if (piVar6 == (int *)0x0) {
LAB_0002cec4:
            pcVar29 = *(code **)(iVar24 + -0x7d1c);
            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);
            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);
            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);
            piVar6 = (int *)(*pcVar29)(pbVar13);
            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();
            iVar11 = *(int *)(puVar18 + -0x110);
            if (piVar6 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar29 = *(code **)(iVar11 + -0x7d38);
LAB_0002cf18:
              pbVar19[0] = 0;
              pbVar19[1] = 0;
              pbVar19[2] = 0;
              pbVar19[3] = 0;
              piVar9 = (int *)(*pcVar29)(piVar6);
              iVar11 = *(int *)(puVar18 + -0x110);
              if (piVar9 == (int *)0x0) {
                pbVar16 = *(byte **)pbVar19;
                pcVar29 = *(code **)(iVar11 + -0x7d6c);
                if (pbVar16 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar16 = (byte *)0x2;
                    pbVar19[0] = 0;
                    pbVar19[1] = 0;
                    pbVar19[2] = 0;
                    pbVar19[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar11 + -0x7d90))(piVar6);
                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);
                  iVar11 = *(int *)(puVar18 + -0x110);
                  if (piVar9 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar16 = *(byte **)pbVar19;
                  pcVar29 = *(code **)(iVar11 + -0x7d6c);
                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);
          iVar24 = *(int *)(puVar18 + -0x110);
          if (iVar11 == 0) goto LAB_0002cec4;
          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();
          iVar11 = *(int *)(puVar18 + -0x110);
LAB_0002d208:
          pbVar16 = *(byte **)pbVar19;
        }
        else {
          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();
          iVar11 = *(int *)(puVar18 + -0x110);
          pbVar16 = *(byte **)pbVar19;
          if (piVar6 != (int *)0x0) {
            (**(code **)(iVar11 + -0x7d6c))(piVar6);
            iVar11 = *(int *)(puVar18 + -0x110);
          }
        }
        (**(code **)(iVar11 + -0x7d68))(pbVar13);
        pcVar23 = *(code **)(puVar18 + -0x110);
        pbVar12 = pbVar15;
        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;
        pcVar29 = *(code **)(pcVar23 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
    pbVar16 = *(byte **)pbVar19;
    pcVar23 = *(code **)(puVar18 + -0x110);
    if (*(int *)(puVar18 + -0x100) == 0) {
      pcVar29 = *(code **)(pcVar23 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));
      pcVar23 = *(code **)(puVar18 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar19 = pbVar16;
    *(undefined4 *)(puVar18 + -0x108) = 0;
  }
LAB_0002d158:
  piVar9 = *(int **)(puVar18 + -0xf4);
LAB_0002d15c:
  pbVar13 = *(byte **)(puVar18 + -0x2c);
  if (pbVar13 != (byte *)*piVar9) {
    pcVar29 = *(code **)(pcVar23 + -0x7c10);
    uVar31 = 0x2d36c;
    (*pcVar29)();
    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;
    *(undefined4 *)(puVar18 + -300) = uVar31;
    *(byte **)(puVar18 + -0x130) = pbVar19;
    *(int **)(puVar18 + -0x134) = piVar6;
    *(byte **)(puVar18 + -0x138) = pbVar16;
    if (pbVar13 == (byte *)0x0) {
      pbVar13 = (byte *)0xffffffff;
      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();
      *puVar5 = 0x7a;
    }
    else if (pbVar13 == (byte *)0xa) {
      uVar31 = *(undefined4 *)pbVar12;
      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);
      if (iVar11 == 0) {
        pbVar13 = (byte *)0xffffffff;
        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);
        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);
        pbVar12[0] = 0;
        pbVar12[1] = 0;
        pbVar12[2] = 0;
        pbVar12[3] = 0;
        puVar5 = (undefined4 *)(*pcVar29)();
        *puVar5 = 0x3d;
      }
    }
    return pbVar13;
  }
  return *(byte **)(puVar18 + -0x108);
code_r0x0002d0ec:
  pcVar29 = *(code **)(iVar11 + -0x7d38);
  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar29 = *(code **)(iVar11 + -0x7c30);
  if (bVar1) {
    if (*piVar9 == iVar28) {
      iVar24 = *(int *)(puVar18 + -0x104);
      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {
        pcVar29 = *(code **)(iVar11 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar24 = *(int *)(puVar18 + -0x104);
    }
    pcVar29 = *(code **)(iVar11 + -0x7d38);
    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar29 = *(code **)(iVar11 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar12 = (byte *)((int)piVar9 + 0x13);
  *(undefined4 *)(puVar18 + -0x118) = 0x100;
  pbVar15 = pbVar13;
  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);
  iVar11 = *(int *)(puVar18 + -0x110);
  if (iVar24 != 0) goto LAB_0002cf10;
  pcVar29 = *(code **)(iVar11 + -0x7d38);
  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||
      (*(int *)(puVar18 + -0xc0) != iVar28)) ||
     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;
  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));
  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);
  iVar11 = *(int *)(puVar18 + -0x110);
  if (pbVar27 <= pbVar16) {
    pbVar20 = *(byte **)(puVar18 + -0xf8);
    if (*(int *)(puVar18 + 4) != 0) {
      pbVar16 = (byte *)0x22;
      pbVar19[0] = 0;
      pbVar19[1] = 0;
      pbVar19[2] = 0;
      pbVar19[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar7 = pbVar20;
    if (pbVar20 < pbVar16) {
      pbVar7 = pbVar16;
    }
    pbVar17 = pbVar7 + (int)pbVar20;
    pcVar29 = *(code **)(iVar11 + -0x7c78);
    if (pbVar17 < pbVar20) {
LAB_0002d338:
      pbVar16 = (byte *)0xc;
      pbVar19[0] = 0;
      pbVar19[1] = 0;
      pbVar19[2] = 0;
      pbVar19[3] = 0xc;
LAB_0002d134:
      pcVar29 = *(code **)(iVar11 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar18 + -0x104) = pbVar7;
    pbVar15 = pbVar17;
    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));
    iVar11 = *(int *)(puVar18 + -0x110);
    if (iVar24 == 0) goto LAB_0002d338;
    uVar31 = (**(code **)(iVar11 + -0x7be0))
                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,
                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);
    iVar11 = *(int *)(puVar18 + -0x110);
    *(byte **)(puVar18 + -0xf8) = pbVar17;
    *(undefined4 *)(puVar18 + -0xe0) = uVar31;
    *(int *)(puVar18 + -0x108) = iVar24;
  }
  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)
  ;
  iVar25 = *(int *)(puVar18 + -0x110);
  iVar28 = *(int *)(puVar18 + -0xd8);
  *(int *)(puVar18 + -0xe0) = iVar11 + -1;
  *(undefined1 *)(iVar11 + -1) = 0x2f;
  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);
  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);
  goto LAB_0002ce58;
}


lui gp,0x2
addiu gp,gp,0x5b40
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7ca4(gp)
sw s8,0x60(sp)
or s8,sp,zero
sw s2,0x48(sp)
lw s2,-0x7be4(gp)
lbu v0,0x7b(s8)
sw s0,0x40(sp)
or s0,a1,zero
sw s7,0x5c(sp)
addiu s7,a1,0x1
sw v0,0x30(s8)
sw s4,0x50(sp)
or s4,a2,zero
sw gp,0x18(sp)
sw a0,0x68(s8)
or a0,a1,zero
sw ra,0x64(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s3,0x4c(sp)
sw s1,0x44(sp)
sw a3,0x2c(s8)
sw zero,0x38(s8)
lw v0,0x0(s2)
sw v0,0x3c(s8)
jalr t9
_nop
lb a0,0x1(s0)
lw gp,0x18(s8)
beq a0,zero,0x0002b7b0
_sw v0,0x24(s8)
lw v0,0x68(s8)
or s5,zero,zero
lw s3,-0x7fd8(gp)
or s6,s7,zero
addiu s1,v0,-0x3f
addiu v0,s8,0x38
sltiu s1,s1,0x2
sw v0,0x34(s8)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x671c
sw v0,0x28(s8)
li v0,0x5b
beq a0,v0,0x0002b8b4
_lui v0,0xc000
addiu a1,v0,0x601
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
beq a2,zero,0x0002b818
_li t2,0x28
srlv v0,a1,v0
ext v0,v0,0x0,0x1
bne v0,zero,0x0002b7f8
_li v0,0x29
bne a0,v0,0x0002b918
_nop
beq s5,zero,0x0002b970
_addiu v0,s5,-0x1
lb a0,0x1(s7)
addiu s7,s7,0x1
or s5,v0,zero
bne a0,zero,0x0002b75c
_li v0,0x5b
li v0,-0x1
lw a0,0x3c(s8)
lw v1,0x0(s2)
bne a0,v1,0x0002bd88
_lw t9,-0x7c10(gp)
or sp,s8,zero
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lb a0,0x1(s7)
bne a0,t2,0x0002b7a8
_addiu s7,s7,0x1
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
bne a2,zero,0x0002b77c
_addiu s5,s5,0x1
li v0,0x7c
bne a0,v0,0x0002b918
_nop
bne s5,zero,0x0002b918
_nop
bne s1,zero,0x0002b83c
_lw v0,0x24(s8)
subu v0,s7,s6
addiu v0,v0,0x1
li a0,-0x4
addiu v0,v0,0x7
and v0,v0,a0
addiu a0,v0,-0x4
sltiu a0,a0,0x1f3c
beq a0,zero,0x0002b7b0
_addiu v0,v0,0x7
lw t9,-0x7bfc(gp)
subu a2,s7,s6
srl v0,v0,0x3
or a1,s6,zero
sll v0,v0,0x3
addiu s6,s7,0x1
subu sp,sp,v0
addiu t2,sp,0x18
addiu a0,sp,0x1c
jalr t9
_sw t2,0x20(s8)
lw gp,0x18(s8)
lw t2,0x20(s8)
lb a0,0x1(s7)
or s7,s6,zero
sb zero,0x0(v0)
lw v0,0x34(s8)
sw zero,0x0(t2)
sw t2,0x34(s8)
bne a0,zero,0x0002b758
_sw t2,0x0(v0)
b 0x0002b7b4
_li v0,-0x1
lw v0,-0x5830(s3)
beq v0,zero,0x0002b950
_lw t9,-0x7c74(gp)
lb v0,0x1(s7)
li a1,0x21
beq v0,a1,0x0002b934
_addiu a0,s7,0x1
lw a1,-0x5830(s3)
bltz a1,0x0002b92c
_li a1,0x5e
li v1,0x5d
beq v0,v1,0x0002b944
_nop
b 0x0002b8fc
_li a1,0x5d
beq v0,zero,0x0002b7b0
_or a0,s7,zero
lb v0,0x0(s7)
bne v0,a1,0x0002b8f0
_addiu s7,a0,0x1
lb a0,0x1(a0)
bne a0,zero,0x0002b758
_li v0,-0x1
b 0x0002b7b4
_nop
lb a0,0x1(s7)
bne a0,zero,0x0002b758
_addiu s7,s7,0x1
b 0x0002b7b4
_li v0,-0x1
bne v0,a1,0x0002b8e0
_li v1,0x5d
lb v0,0x2(s7)
li v1,0x5d
bne v0,v1,0x0002b8e8
_addiu a0,s7,0x2
lb v0,0x1(a0)
b 0x0002b8e8
_addiu a0,a0,0x1
jalr t9
_lw a0,0x28(s8)
li a0,0x1
li a1,-0x1
lw gp,0x18(s8)
movn a1,a0,v0
b 0x0002b8c0
_sw a1,-0x5830(s3)
lw v0,0x68(s8)
addiu v0,v0,-0x3f
sltiu v0,v0,0x2
bne v0,zero,0x0002b98c
_subu v0,s7,s6
addiu v0,v0,0x1
sw v0,0x24(s8)
lw v0,0x24(s8)
li a0,-0x4
addiu v0,v0,0x7
and v0,v0,a0
addiu a0,v0,-0x4
sltiu a0,a0,0x1f3c
beq a0,zero,0x0002b7b0
_addiu v0,v0,0x7
lw t9,-0x7bfc(gp)
subu a2,s7,s6
srl v0,v0,0x3
or a1,s6,zero
sll v0,v0,0x3
subu sp,sp,v0
addiu a0,sp,0x1c
jalr t9
_addiu s1,sp,0x18
lw v1,0x34(s8)
lw gp,0x18(s8)
sb zero,0x0(v0)
sw zero,0x0(s1)
sw s1,0x0(v1)
lw s1,0x38(s8)
beq s1,zero,0x0002bd64
_li v0,0x29
lb a0,-0x1(s7)
bne a0,v0,0x0002bd40
_lw v0,0x68(s8)
addiu s3,v0,-0x21
sltiu v0,s3,0x20
beq v0,zero,0x0002bd1c
_lw v0,-0x7fc8(gp)
sll s3,s3,0x2
addiu v0,v0,0x7bf0
addu s3,v0,s3
lw v0,0x0(s3)
addu v0,v0,gp
jr v0
_nop
lw s3,-0x7fc8(gp)
or a1,s4,zero
lw v0,0x7c(s8)
or a0,s7,zero
lw a3,0x30(s8)
lw a2,0x2c(s8)
addiu s3,s3,-0x4270
or t9,s3,zero
bal 0x0002bd90
_sw v0,0x10(sp)
beq v0,zero,0x0002bb80
_lw gp,0x18(s8)
lw v0,0x7c(s8)
lw v1,0x7c(s8)
lw s3,-0x7fc8(gp)
andi s6,v0,0x1
li v0,-0x5
addiu s3,s3,-0x4270
and v0,v1,v0
movz v1,v0,s6
lw v0,0x7c(s8)
or s6,v1,zero
addiu v1,s0,-0x1
andi v0,v0,0x5
sw v1,0x28(s8)
xori v0,v0,0x5
lw v1,0x2c(s8)
sltiu v0,v0,0x1
sw v0,0x34(s8)
sltu v1,v1,s4
sw v1,0x24(s8)
lw v0,0x24(s8)
bne v0,zero,0x0002bd00
_addiu s0,s1,0x4
b 0x0002bb30
_or s5,s4,zero
lb a3,-0x1(s5)
lw v0,0x34(s8)
or a0,s7,zero
lw a2,0x2c(s8)
or t9,s3,zero
xori a3,a3,0x2f
sw s6,0x10(sp)
movn v0,zero,a3
bal 0x0002bd90
_or a3,v0,zero
beq v0,zero,0x0002bb80
_lw gp,0x18(s8)
lb a3,-0x1(s5)
or a1,s5,zero
lw v0,0x34(s8)
or t9,s3,zero
lw a2,0x2c(s8)
xori a3,a3,0x2f
lw a0,0x28(s8)
movn v0,zero,a3
sw s6,0x10(sp)
bal 0x0002bd90
_or a3,v0,zero
beq v0,zero,0x0002bb80
_lw gp,0x18(s8)
lw v0,0x2c(s8)
addiu s5,s5,0x1
sltu v0,v0,s5
bne v0,zero,0x0002bd00
_nop
lw a3,0x30(s8)
or a2,s5,zero
sw s6,0x10(sp)
or a1,s4,zero
or t9,s3,zero
bal 0x0002bd90
_or a0,s0,zero
bne v0,zero,0x0002bb1c
_lw gp,0x18(s8)
bne s4,s5,0x0002bab8
_or a1,s5,zero
lw a3,0x30(s8)
or a1,s4,zero
lw a2,0x2c(s8)
or a0,s7,zero
or t9,s3,zero
bal 0x0002bd90
_sw s6,0x10(sp)
bne v0,zero,0x0002bb1c
_lw gp,0x18(s8)
b 0x0002b7b4
_or v0,zero,zero
lw v0,0x2c(s8)
sltu v0,v0,s4
bne v0,zero,0x0002bc50
_lw v1,0x7c(s8)
lw v0,0x7c(s8)
or s0,s4,zero
lw s3,-0x7fc8(gp)
andi s6,v0,0x1
li v0,-0x5
addiu s3,s3,-0x4270
and v0,v1,v0
movz v1,v0,s6
lw v0,0x7c(s8)
or s6,v1,zero
andi v0,v0,0x5
xori v0,v0,0x5
sltiu v0,v0,0x1
sw v0,0x34(s8)
or s5,s1,zero
lw a3,0x30(s8)
addiu a0,s5,0x4
sw s6,0x10(sp)
or a2,s0,zero
or t9,s3,zero
bal 0x0002bd90
_or a1,s4,zero
beq v0,zero,0x0002bc3c
_lw gp,0x18(s8)
lw s5,0x0(s5)
bne s5,zero,0x0002bbd8
_lw a3,0x30(s8)
beq s4,s0,0x0002bd14
_lw v0,0x34(s8)
lb a3,-0x1(s0)
xori a3,a3,0x2f
movn v0,zero,a3
or a3,v0,zero
lw a2,0x2c(s8)
or a1,s0,zero
sw s6,0x10(sp)
or t9,s3,zero
bal 0x0002bd90
_or a0,s7,zero
beq v0,zero,0x0002bb80
_lw gp,0x18(s8)
lw v0,0x2c(s8)
addiu s0,s0,0x1
sltu v0,v0,s0
beq v0,zero,0x0002bbd0
_nop
b 0x0002b7b4
_li v0,0x1
lw s3,-0x7fc8(gp)
addiu s3,s3,-0x4270
lw v0,0x7c(s8)
lw v1,0x7c(s8)
andi s0,v0,0x1
li v0,-0x5
and v0,v1,v0
movz v1,v0,s0
b 0x0002bc8c
_or s0,v1,zero
lw s1,0x0(s1)
beq s1,zero,0x0002bc50
_sw s1,0x38(s8)
lw t9,-0x7c50(gp)
addiu a0,s1,0x4
jalr t9
_or a1,s7,zero
or a1,s4,zero
lw a3,0x30(s8)
or a0,v0,zero
lw a2,0x2c(s8)
or t9,s3,zero
bal 0x0002bd90
_sw s0,0x10(sp)
bne v0,zero,0x0002bc80
_lw gp,0x18(s8)
b 0x0002b7b4
_or v0,zero,zero
lw s3,-0x7fc8(gp)
or a1,s4,zero
lw v0,0x7c(s8)
or a0,s7,zero
lw a3,0x30(s8)
lw a2,0x2c(s8)
addiu s3,s3,-0x4270
or t9,s3,zero
bal 0x0002bd90
_sw v0,0x10(sp)
bne v0,zero,0x0002bc60
_lw gp,0x18(s8)
b 0x0002b7b4
_or v0,zero,zero
lw s1,0x0(s1)
bne s1,zero,0x0002baa4
_sw s1,0x38(s8)
b 0x0002b7b4
_li v0,0x1
b 0x0002bc1c
_lw a3,0x30(s8)
lw a3,-0x7fc8(gp)
li a2,0x4ad
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7d80(gp)
addiu a3,a3,0x7d60
addiu a1,a1,0x7a00
jalr t9
_addiu a0,a0,0x7a38
lw a3,-0x7fc8(gp)
li a2,0x455
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7d80(gp)
addiu a3,a3,0x7d60
addiu a1,a1,0x7a00
jalr t9
_addiu a0,a0,0x7a24
lw a3,-0x7fc8(gp)
li a2,0x454
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7d80(gp)
addiu a3,a3,0x7d60
addiu a1,a1,0x7a00
jalr t9
_addiu a0,a0,0x7a14
jalr t9
_nop
(translation_unit "byte * FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "byte * FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}" type_identifier (pointer_declarator "* FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" * (function_declarator "FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" identifier (parameter_list "(int param_1,byte *param_2,byte *param_3,byte *param_4)" ( (parameter_declaration "int param_1" primitive_type 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)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined1 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * 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 "int iVar24;" primitive_type 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 "int iVar28;" primitive_type identifier ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar21 = auStack_68;" (assignment_expression "puVar21 = auStack_68" identifier = identifier) ;) (expression_statement "pbVar19 = param_2 + 1;" (assignment_expression "pbVar19 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000495fc;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000495fc" * (cast_expression "(byte **)PTR___stack_chk_guard_000495fc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar12 = param_2;" (assignment_expression "pbVar12 = param_2" identifier = identifier) ;) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" identifier = identifier) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0004953c)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004953c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0004953c)" ( (pointer_expression "*(code *)PTR_strlen_0004953c" * (cast_expression "(code *)PTR_strlen_0004953c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar22 = PTR_DAT_00049208;" (assignment_expression "puVar22 = PTR_DAT_00049208" identifier = identifier) ;) (expression_statement "iVar11 = (int)(char)param_2[1];" (assignment_expression "iVar11 = (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 ])))) ;) (if_statement "if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" { (expression_statement "unaff_s5 = (undefined1 *)0x0;" (assignment_expression "unaff_s5 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s1 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(param_1 - 0x3fU < 2)" identifier = (call_expression "(uint)(param_1 - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 - 0x3fU < 2)" ( (binary_expression "param_1 - 0x3fU < 2" (binary_expression "param_1 - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "puVar3 = PTR_LAB_00049218 + 0x671c;" (assignment_expression "puVar3 = PTR_LAB_00049218 + 0x671c" identifier = (binary_expression "PTR_LAB_00049218 + 0x671c" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "puVar18 = auStack_68;" (assignment_expression "puVar18 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar19;" (assignment_expression "unaff_s6 = pbVar19" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" statement_identifier : (do_statement "do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" do (compound_statement "{\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    }" { (expression_statement "puVar21 = puVar18;" (assignment_expression "puVar21 = puVar18" identifier = identifier) ;) (expression_statement "unaff_s3 = puVar22;" (assignment_expression "unaff_s3 = puVar22" identifier = identifier) ;) (if_statement "if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" if (parenthesized_expression "(iVar11 == 0x5b)" ( (binary_expression "iVar11 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }" { (if_statement "if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" if (parenthesized_expression "(*(int *)(puVar22 + -0x5830) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x5830) == 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" * (cast_expression "(int *)(puVar22 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);" (assignment_expression "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3)" identifier = (call_expression "(*(code *)PTR_getenv_0004956c)(puVar3)" (parenthesized_expression "(*(code *)PTR_getenv_0004956c)" ( (pointer_expression "*(code *)PTR_getenv_0004956c" * (cast_expression "(code *)PTR_getenv_0004956c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier )))) ;) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar11 != 0) {\n            uVar31 = 1;\n          }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar31 = 1;\n          }" { (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar22 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(puVar22 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(puVar22 + -0x5830)" * (cast_expression "(undefined4 *)(puVar22 + -0x5830)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "bVar8 = pbVar19[1];" (assignment_expression "bVar8 = pbVar19[1]" identifier = (subscript_expression "pbVar19[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar19 + 1;" (assignment_expression "pbVar16 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" if (parenthesized_expression "((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))))" ( (binary_expression "(bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" (parenthesized_expression "(bVar8 == 0x21)" ( (binary_expression "bVar8 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))" ( (binary_expression "*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)" (binary_expression "*(int *)(puVar22 + -0x5830) < 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" * (cast_expression "(int *)(puVar22 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar8 == 0x5e)" ( (binary_expression "bVar8 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" { (expression_statement "bVar8 = pbVar19[2];" (assignment_expression "bVar8 = pbVar19[2]" identifier = (subscript_expression "pbVar19[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar19 + 2;" (assignment_expression "pbVar16 = pbVar19 + 2" identifier = (binary_expression "pbVar19 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" if (parenthesized_expression "(bVar8 == 0x5d)" ( (binary_expression "bVar8 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" { (expression_statement "bVar8 = pbVar16[1];" (assignment_expression "bVar8 = pbVar16[1]" identifier = (subscript_expression "pbVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar12 = (byte *)0x5d;" (assignment_expression "pbVar12 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" while (parenthesized_expression "(pbVar19 = pbVar16 + 1, bVar8 != 0x5d)" ( (comma_expression "pbVar19 = pbVar16 + 1, bVar8 != 0x5d" (assignment_expression "pbVar19 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) , (binary_expression "bVar8 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" { (if_statement "if (bVar8 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" identifier = identifier) ;) (expression_statement "bVar8 = *pbVar19;" (assignment_expression "bVar8 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) })) (expression_statement "iVar11 = (int)(char)pbVar16[1];" (assignment_expression "iVar11 = (int)(char)pbVar16[1]" identifier = (cast_expression "(int)(char)pbVar16[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar16[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar16[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" else (compound_statement "{\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" { (expression_statement "pbVar12 = &DAT_c0000601;" (assignment_expression "pbVar12 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar4 = iVar11 - 0x21U & 0xff;" (assignment_expression "uVar4 = iVar11 - 0x21U & 0xff" identifier = (binary_expression "iVar11 - 0x21U & 0xff" (binary_expression "iVar11 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar13 = (byte *)(uint)(uVar4 < 0x20);" (assignment_expression "pbVar13 = (byte *)(uint)(uVar4 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar4 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar4 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < 0x20)" ( (binary_expression "uVar4 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = 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 ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }" { (if_statement "if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0))" ( (binary_expression "(iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)" (parenthesized_expression "(iVar11 == 0x7c)" ( (binary_expression "iVar11 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" ( (binary_expression "unaff_s5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar16 = local_44;" (assignment_expression "pbVar16 = local_44" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar16 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "pbVar16 = pbVar19 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar19 + (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)(pbVar16 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + 7)" ( (binary_expression "pbVar16 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar19 + -(int)unaff_s6;" (assignment_expression "pbVar13 = pbVar19 + -(int)unaff_s6" identifier = (binary_expression "pbVar19 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar15 = pbVar19 + 1;" (assignment_expression "pbVar15 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + 7)" ( (binary_expression "pbVar16 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar26 = puVar21 + iVar24;" (assignment_expression "puVar26 = puVar21 + iVar24" identifier = (binary_expression "puVar21 + iVar24" identifier + identifier)) ;) (expression_statement "piVar6 = (int *)(puVar21 + iVar24 + 0x18);" (assignment_expression "piVar6 = (int *)(puVar21 + iVar24 + 0x18)" identifier = (cast_expression "(int *)(puVar21 + iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar24 + 0x18)" ( (binary_expression "puVar21 + iVar24 + 0x18" (binary_expression "puVar21 + iVar24" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);" (assignment_expression "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + iVar24 + 0x1c)" ( (binary_expression "puVar21 + iVar24 + 0x1c" (binary_expression "puVar21 + iVar24" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar15;" (assignment_expression "pbVar19 = pbVar15" identifier = identifier) ;) (expression_statement "puVar21 = puVar21 + iVar24;" (assignment_expression "puVar21 = puVar21 + iVar24" identifier = (binary_expression "puVar21 + iVar24" identifier + identifier)) ;) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" identifier = identifier) ;) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" identifier = identifier) ;) (if_statement "if (iVar11 == 0) break;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];" statement_identifier : (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar4 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar4 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar4 & 0x1f)" number_literal >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" { (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar11 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar11 != 0x28)" ( (binary_expression "iVar11 != 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 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar11 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar11 != 0x29)" ( (binary_expression "iVar11 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" if (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" ( (binary_expression "unaff_s5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" { (if_statement "if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < param_1 - 0x3fU)" ( (binary_expression "1 < param_1 - 0x3fU" number_literal < (binary_expression "param_1 - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_44 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar19 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar19 + (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)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" if (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" { (expression_statement "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);" (assignment_expression "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" ( (binary_expression "puVar21 + iVar11 + 0x1c" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar19 - (int)unaff_s6" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar21 + iVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar11 + 0x18)" ( (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(puVar21 + iVar11 + 0x18);" (assignment_expression "*local_34 = (int)(puVar21 + iVar11 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(puVar21 + iVar11 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar21 + iVar11 + 0x18)" ( (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a14" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (if_statement "if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(pbVar19[-1] != 0x29)" ( (binary_expression "pbVar19[-1] != 0x29" (subscript_expression "pbVar19[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a24" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (if_statement "if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(0x1f < param_1 - 0x21U)" ( (binary_expression "0x1f < param_1 - 0x21U" number_literal < (binary_expression "param_1 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a38" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) comment comment (expression_statement "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" identifier = (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" * (cast_expression "(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" ( (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0" (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4" identifier + (binary_expression "(param_1 - 0x21U) * 4" (parenthesized_expression "(param_1 - 0x21U)" ( (binary_expression "param_1 - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[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)) ;) }))) (labeled_statement "joined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;" statement_identifier : (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar18 = puVar21;" (assignment_expression "puVar18 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar2)" ( (binary_expression "local_2c == *(byte **)puVar2" identifier == (pointer_expression "*(byte **)puVar2" * (cast_expression "(byte **)puVar2" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) 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 "pcVar29 = FUN_0002bd90;" (assignment_expression "pcVar29 = FUN_0002bd90" identifier = identifier) ;) (expression_statement "pbVar16 = local_2c;" (assignment_expression "pbVar16 = local_2c" identifier = 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 "puVar3 = puVar22 + 0x25450;" (assignment_expression "puVar3 = puVar22 + 0x25450" identifier = (binary_expression "puVar22 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);" (assignment_expression "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(puVar22 + 0x1d86c)" * (cast_expression "(undefined4 **)(puVar22 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1d86c)" ( (binary_expression "puVar22 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_68" (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 "*(undefined **)(puVar21 + -0x1c) = unaff_s3;" (assignment_expression "*(undefined **)(puVar21 + -0x1c) = unaff_s3" (pointer_expression "*(undefined **)(puVar21 + -0x1c)" * (cast_expression "(undefined **)(puVar21 + -0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar21 + -0x160) = puVar3;" (assignment_expression "*(undefined **)(puVar21 + -0x160) = puVar3" (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" 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) = pcVar29;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar29" (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) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar19" (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 "*(undefined1 **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x18) = param_3" (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 "*(undefined **)(puVar21 + -0x20) = puVar2;" (assignment_expression "*(undefined **)(puVar21 + -0x20) = puVar2" (pointer_expression "*(undefined **)(puVar21 + -0x20)" * (cast_expression "(undefined **)(puVar21 + -0x20)" ( (type_descriptor "undefined **" 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) = puVar5;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar5" (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) = pbVar16 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar16 + 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 "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar15 = (byte *)(uint)*pbVar16;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar16" identifier = (binary_expression "(byte *)(uint)*pbVar16" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar5" (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 "*puVar5" * identifier)) ;) (expression_statement "pbVar20 = *(byte **)(puVar22 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(puVar22 + 0x1d488)" identifier = (pointer_expression "*(byte **)(puVar22 + 0x1d488)" * (cast_expression "(byte **)(puVar22 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar27 = pbVar12;" (assignment_expression "pbVar27 = pbVar12" identifier = identifier) ;) (if_statement "if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" if (parenthesized_expression "(pbVar15 != (byte *)0x0)" ( (binary_expression "pbVar15 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" { (expression_statement "uVar4 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar4 = *(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 = uVar4 & 2;" (assignment_expression "unaff_s1 = uVar4 & 2" identifier = (binary_expression "uVar4 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar4 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar4 & 0x10)" identifier = (cast_expression "(byte *)(uVar4 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar4 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar4 & 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 "uVar4 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 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 *)(puVar22 + 0x1d478)" * (cast_expression "(undefined4 *)(puVar22 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d478)" ( (binary_expression "puVar22 + 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 *)(puVar22 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar22 + 0x1d488)" * (cast_expression "(int *)(puVar22 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar22 + 0x1d488)" * (cast_expression "(int *)(puVar22 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_3 = pbVar16;" (assignment_expression "param_3 = pbVar16" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);" do (compound_statement "{\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    }" { (expression_statement "pbVar16 = pbVar15;" (assignment_expression "pbVar16 = pbVar15" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);" (assignment_expression "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4 + 3)" ( (binary_expression "*piVar6 + (int)pbVar15 * 4 + 3" (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" if (parenthesized_expression "(((uint)(pbVar16 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar16 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + -0x21)" ( (binary_expression "pbVar16 + -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        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" { comment comment (expression_statement "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" identifier = (cast_expression "(byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -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)(pbVar16 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + -0x21)" ( (binary_expression "pbVar16 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" identifier = identifier) ;) (if_statement "if (pbVar27 == pbVar13) goto LAB_0002c064;" if (parenthesized_expression "(pbVar27 == pbVar13)" ( (binary_expression "pbVar27 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar15 = (byte *)(uint)*pbVar27;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar27" identifier = (binary_expression "(byte *)(uint)*pbVar27" (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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);" (assignment_expression "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4)" identifier = (pointer_expression "*(byte **)(*piVar6 + (int)pbVar15 * 4)" * (cast_expression "(byte **)(*piVar6 + (int)pbVar15 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4)" ( (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = pbVar16;" (assignment_expression "unaff_s6 = pbVar16" identifier = identifier) ;) (if_statement "if (pbVar15 != pbVar16) goto LAB_0002c064;" if (parenthesized_expression "(pbVar15 != pbVar16)" ( (binary_expression "pbVar15 != pbVar16" identifier != identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "param_3 = *(byte **)(puVar21 + -0x154);" (assignment_expression "param_3 = *(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 "pbVar15 = (byte *)(uint)*param_3;" (assignment_expression "pbVar15 = (byte *)(uint)*param_3" identifier = (binary_expression "(byte *)(uint)*param_3" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = param_3 + 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 "param_3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar15 != (byte *)0x0)" ( (binary_expression "pbVar15 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pbVar7 = (byte *)0x0;" (assignment_expression "pbVar7 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar27 != pbVar13)" ( (binary_expression "pbVar27 != pbVar13" identifier != identifier) )) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" { (expression_statement "param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "param_3 = (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 (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" if (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar7 = (byte *)0x1;\n    }" { (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" else (compound_statement "{\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" { (expression_statement "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);" (assignment_expression "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*pbVar27 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*pbVar27 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar27 != 0x2f)" ( (binary_expression "*pbVar27 != 0x2f" (pointer_expression "*pbVar27" * identifier) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar11 = *(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 (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }" if (parenthesized_expression "(iVar11 == **(int **)(puVar21 + -0x144))" ( (binary_expression "iVar11 == **(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 pbVar7;\n  }" { (return_statement "return pbVar7;" return identifier ;) })) (expression_statement "pcVar29 = *(code **)(puVar3 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(puVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar3 + -0x7c10)" * (cast_expression "(code **)(puVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7c10)" ( (binary_expression "puVar3 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar23 = *(code **)(pcVar29 + 0x1cbc4);" (assignment_expression "pcVar23 = *(code **)(pcVar29 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x1cbc4)" * (cast_expression "(code **)(pcVar29 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1cbc4)" ( (binary_expression "pcVar29 + 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 "piVar6 = *(int **)(pcVar29 + 0x1cc28);" (assignment_expression "piVar6 = *(int **)(pcVar29 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar29 + 0x1cc28)" * (cast_expression "(int **)(pcVar29 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1cc28)" ( (binary_expression "pcVar29 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar27" (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) = pbVar15;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar15" (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) = pcVar29 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar29 + 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 "pcVar29 + 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 "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x18c)" * (cast_expression "(undefined1 **)(puVar21 + -0x18c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18c)" ( (binary_expression "puVar21 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -400) = param_3;" (assignment_expression "*(byte **)(puVar21 + -400) = param_3" (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) = pbVar13;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar13" (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) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar11" (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) = pbVar12;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar12" (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) = *piVar6;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar6" (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 "*piVar6" * identifier)) ;) (expression_statement "iVar11 = (*pcVar23)();" (assignment_expression "iVar11 = (*pcVar23)()" identifier = (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar11 == 1)" ( (binary_expression "iVar11 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);" statement_identifier : (expression_statement "pbVar12 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar12 = *(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 "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12)" identifier = (call_expression "(**(code **)(iVar24 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ca4)" * (pointer_expression "*(code **)(iVar24 + -0x7ca4)" * (cast_expression "(code **)(iVar24 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ca4)" ( (binary_expression "iVar24 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 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 "pbVar12 + iVar11" identifier + identifier) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" { (expression_statement "puVar14 = puVar21 + -0x1ac;" (assignment_expression "puVar14 = puVar21 + -0x1ac" identifier = (binary_expression "puVar21 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = puVar21 + -0x1b4;" (assignment_expression "unaff_s5 = puVar21 + -0x1b4" identifier = (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 "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);" (assignment_expression "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14)" identifier = (call_expression "(*pcVar29)(0,unaff_s5,0,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(0,unaff_s5,0,puVar14)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar13 = (byte *)(iVar11 + 1);" (assignment_expression "pbVar13 = (byte *)(iVar11 + 1)" identifier = (cast_expression "(byte *)(iVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" ( (pointer_expression "**(code **)(iVar24 + -0x7be8)" * (pointer_expression "*(code **)(iVar24 + -0x7be8)" * (cast_expression "(code **)(iVar24 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7be8)" ( (binary_expression "iVar24 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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 "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" identifier = identifier) ;) (expression_statement "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar14)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar20 = param_3 + 1;" (assignment_expression "pbVar20 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" ( (pointer_expression "**(code **)(iVar24 + -0x7be8)" * (pointer_expression "*(code **)(iVar24 + -0x7be8)" * (cast_expression "(code **)(iVar24 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7be8)" ( (binary_expression "iVar24 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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 "pbVar16 = pbVar13 + (int)pbVar20;" (assignment_expression "pbVar16 = pbVar13 + (int)pbVar20" identifier = (binary_expression "pbVar13 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16))" ( (binary_expression "(pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)" (parenthesized_expression "(pbVar16 < pbVar13)" ( (binary_expression "pbVar16 < pbVar13" identifier < identifier) )) || (parenthesized_expression "((byte *)0x3fffffff < pbVar16)" ( (binary_expression "(byte *)0x3fffffff < pbVar16" (cast_expression "(byte *)0x3fffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }" { (labeled_statement "LAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;" statement_identifier : (expression_statement "pbVar16 = (byte *)0xffffffff;" (assignment_expression "pbVar16 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" else (if_statement "if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "(pbVar16 < (byte *)0x7d0)" ( (binary_expression "pbVar16 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }" { (expression_statement "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar16 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar16 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar16 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar16 * 4 + 7U" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1c8;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1c8" identifier = (binary_expression "puVar21 + iVar10 + -0x1c8" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar15 = puVar18 + (int)pbVar13 * 4;" (assignment_expression "pbVar15 = puVar18 + (int)pbVar13 * 4" identifier = (binary_expression "puVar18 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(puVar18,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d80))" ( (pointer_expression "**(code **)(iVar24 + -0x7d80)" * (pointer_expression "*(code **)(iVar24 + -0x7d80)" * (cast_expression "(code **)(iVar24 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d80)" ( (binary_expression "iVar24 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19" (pointer_expression "*(byte **)(puVar21 + iVar10 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + iVar10 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + iVar10 + -0x1d0)" ( (binary_expression "puVar21 + iVar10 + -0x1d0" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar15 + (int)param_3 * 4" identifier + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" identifier = identifier) ;) (expression_statement "unaff_s5 = puVar18;" (assignment_expression "unaff_s5 = puVar18" identifier = identifier) ;) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1e0" identifier = (binary_expression "puVar21 + iVar10 + -0x1e0" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" else (compound_statement "{\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" { (expression_statement "iVar11 = (**(code **)(iVar24 + -0x7c80))();" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar24 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7c80))" ( (pointer_expression "**(code **)(iVar24 + -0x7c80)" * (pointer_expression "*(code **)(iVar24 + -0x7c80)" * (cast_expression "(code **)(iVar24 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7c80)" ( (binary_expression "iVar24 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar11" (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 "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);" (assignment_expression "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4)" identifier = (cast_expression "(byte *)(iVar11 + (int)pbVar13 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + (int)pbVar13 * 4)" ( (binary_expression "iVar11 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);" (call_expression "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(iVar11,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -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 "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" identifier = (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" ( (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 "pbVar15 + (int)param_3 * 4" identifier + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (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 "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" identifier = identifier) ;) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar24 = *(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 "pcVar29 = *(code **)(iVar11 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c10)" * (cast_expression "(code **)(iVar11 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c10)" ( (binary_expression "iVar11 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == *piVar6) {\n    return pbVar16;\n  }" if (parenthesized_expression "(iVar24 == *piVar6)" ( (binary_expression "iVar24 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return pbVar16;\n  }" { (return_statement "return pbVar16;" return identifier ;) })) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar23 = pcVar29 + 0x244c0;" (assignment_expression "pcVar23 = pcVar29 + 0x244c0" identifier = (binary_expression "pcVar29 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar29 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar29 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c8dc)" ( (binary_expression "pcVar29 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar18 + -0xf4) = puVar5;" (assignment_expression "*(undefined4 **)(puVar18 + -0xf4) = puVar5" (pointer_expression "*(undefined4 **)(puVar18 + -0xf4)" * (cast_expression "(undefined4 **)(puVar18 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar18 + -0x110) = pcVar23;" (assignment_expression "*(code **)(puVar18 + -0x110) = pcVar23" (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar18 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar18 + -4) = pcVar30" (pointer_expression "*(code **)(puVar18 + -4)" * (cast_expression "(code **)(puVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar18 + -8)" * (cast_expression "(undefined1 **)(puVar18 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar18 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar18 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar18 + -0xc)" * (cast_expression "(byte **)(puVar18 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar18 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar18 + -0x10)" * (cast_expression "(byte **)(puVar18 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar18 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" * (cast_expression "(undefined1 **)(puVar18 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar18 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar18 + -0x18)" * (cast_expression "(byte **)(puVar18 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x1c) = pbVar13;" (assignment_expression "*(byte **)(puVar18 + -0x1c) = pbVar13" (pointer_expression "*(byte **)(puVar18 + -0x1c)" * (cast_expression "(byte **)(puVar18 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x1c)" ( (binary_expression "puVar18 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x20) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x20) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x20)" * (cast_expression "(byte **)(puVar18 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x20)" ( (binary_expression "puVar18 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x24)" * (cast_expression "(int **)(puVar18 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x24)" ( (binary_expression "puVar18 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x28) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x28) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x28)" * (cast_expression "(byte **)(puVar18 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x28)" ( (binary_expression "puVar18 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + 4) = pbVar12;" (assignment_expression "*(byte **)(puVar18 + 4) = pbVar12" (pointer_expression "*(byte **)(puVar18 + 4)" * (cast_expression "(byte **)(puVar18 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x100) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x100) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c)" * (cast_expression "(undefined4 *)(puVar18 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c)" ( (binary_expression "puVar18 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }" { (if_statement "if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" statement_identifier : (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c840)" * (pointer_expression "*(code **)(pcVar29 + 0x1c840)" * (cast_expression "(code **)(pcVar29 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c840)" ( (binary_expression "pcVar29 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar18 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar18 + -0xf4)" * (cast_expression "(int **)(puVar18 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c7f8)" * (cast_expression "(code **)(pcVar29 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c7f8)" ( (binary_expression "pcVar29 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar5 = 0x16;" (assignment_expression "*puVar5 = 0x16" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100)" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" * (cast_expression "(undefined4 *)(puVar18 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" identifier = (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar21 = puVar18 + -0xd0;" (assignment_expression "puVar21 = puVar18 + -0xd0" identifier = (binary_expression "puVar18 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(puVar18 + -0xf8);" (assignment_expression "iVar10 = *(int *)(puVar18 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d60);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d60)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7d60)" * (cast_expression "(code **)(pcVar23 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7d60)" ( (binary_expression "pcVar23 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" identifier = (cast_expression "(byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" ( (binary_expression "*(int *)(pcVar23 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar23 + -0x7fc8)" * (cast_expression "(int *)(pcVar23 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + -0x7fc8)" ( (binary_expression "pcVar23 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar11 + iVar10 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + iVar10 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar11 + iVar10 + -1)" * (cast_expression "(undefined1 *)(iVar11 + iVar10 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar10 + -1)" ( (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar12,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar24)" ( (binary_expression "-1 < iVar24" number_literal < identifier) )) (compound_statement "{\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar24 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar24 = *(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 "pcVar29 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar29 = *(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 "iVar28 = *(int *)(puVar18 + -0xc0);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar18 + -0xc0)" * (cast_expression "(int *)(puVar18 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" * (cast_expression "(undefined4 *)(puVar18 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = (byte *)(iVar24 + 0x6154);" (assignment_expression "pbVar12 = (byte *)(iVar24 + 0x6154)" identifier = (cast_expression "(byte *)(iVar24 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x6154)" ( (binary_expression "iVar24 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" * (cast_expression "(undefined4 *)(puVar18 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar12,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar24)" ( (binary_expression "-1 < iVar24" number_literal < identifier) )) (compound_statement "{\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar13 = (byte *)0xffffff9c;" (assignment_expression "pbVar13 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xec)" * (cast_expression "(undefined4 *)(puVar18 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xec)" ( (binary_expression "puVar18 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xe4)" * (cast_expression "(undefined4 *)(puVar18 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe4)" ( (binary_expression "puVar18 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" * (cast_expression "(undefined4 *)(puVar18 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xdc)" * (cast_expression "(undefined4 *)(puVar18 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xdc)" ( (binary_expression "puVar18 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar18 + -0xe8)" * (cast_expression "(int *)(puVar18 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe8)" ( (binary_expression "puVar18 + -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 *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4)))" ( (binary_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))" (parenthesized_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec))" ( (binary_expression "*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)" (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar18 + -0xec)" * (cast_expression "(int *)(puVar18 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xec)" ( (binary_expression "puVar18 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar28 == *(int *)(puVar18 + -0xe4))" ( (binary_expression "iVar28 == *(int *)(puVar18 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar18 + -0xe4)" * (cast_expression "(int *)(puVar18 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe4)" ( (binary_expression "puVar18 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(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 *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc))" ( (binary_expression "*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)" (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar18 + -0xdc)" * (cast_expression "(int *)(puVar18 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xdc)" ( (binary_expression "puVar18 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6)" identifier = (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar6)" (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 "(piVar6)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *(int *)(puVar18 + -0xe0);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);" (assignment_expression "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1)" (pointer_expression "*(undefined1 **)(puVar18 + -0xe0)" * (cast_expression "(undefined1 **)(puVar18 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" * (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar12 = *(byte **)(puVar18 + -0xe0);" (assignment_expression "pbVar12 = *(byte **)(puVar18 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xe0)" * (cast_expression "(byte **)(puVar18 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);" (assignment_expression "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" identifier = (cast_expression "(byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" ( (binary_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12" (parenthesized_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8))" ( (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16)" (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 *)(puVar18 + -0x108),pbVar12,pbVar16)" ( (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" if (parenthesized_expression "(*(int *)(puVar18 + 4) == 0)" ( (binary_expression "*(int *)(puVar18 + 4) == 0" (pointer_expression "*(int *)(puVar18 + 4)" * (cast_expression "(int *)(puVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" { (expression_statement "pbVar12 = pbVar16;" (assignment_expression "pbVar12 = pbVar16" identifier = identifier) ;) (expression_statement "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" identifier = (call_expression "(**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(**(code **)(pcVar23 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar23 + -0x7c78)" * (pointer_expression "*(code **)(pcVar23 + -0x7c78)" * (cast_expression "(code **)(pcVar23 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7c78)" ( (binary_expression "pcVar23 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" * (cast_expression "(undefined4 *)(puVar18 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar11 = *(int *)(puVar18 + -0x100);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x100)" identifier = (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" { (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" identifier = (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" { (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(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 "pbVar15 = *(byte **)(puVar18 + -0xe8);" (assignment_expression "pbVar15 = *(byte **)(puVar18 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xe8)" * (cast_expression "(byte **)(puVar18 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe8)" ( (binary_expression "puVar18 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);" (assignment_expression "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0)" identifier = (cast_expression "(byte *)(*pcVar29)(pbVar13,pbVar15,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(pbVar13,pbVar15,0)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar13,pbVar15,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar13 < 0)" ( (binary_expression "(int)pbVar13 < 0" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d6c)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7d6c)" * (cast_expression "(code **)(pcVar23 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7d6c)" ( (binary_expression "pcVar23 + -0x7d6c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d138:\n            (*pcVar29)(piVar6);" statement_identifier : (expression_statement "(*pcVar29)(piVar6);" (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" identifier = identifier) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" identifier = (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar13,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }" { (if_statement "if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7d1c);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7d1c)" * (cast_expression "(code **)(iVar24 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d1c)" ( (binary_expression "iVar24 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" * (cast_expression "(undefined4 *)(puVar18 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd8)" * (cast_expression "(undefined4 *)(puVar18 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd8)" ( (binary_expression "puVar18 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" * (cast_expression "(undefined4 *)(puVar18 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" * (cast_expression "(undefined4 *)(puVar18 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd4)" ( (binary_expression "puVar18 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)(*pcVar29)(pbVar13);" (assignment_expression "piVar6 = (int *)(*pcVar29)(pbVar13)" identifier = (cast_expression "(int *)(*pcVar29)(pbVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(pbVar13)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar13)" ( identifier ))))) ;) (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (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              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 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              pcVar29 = *(code **)(iVar11 + -0x7d38);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar19[0] = 0;" statement_identifier : (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0;" (assignment_expression "pbVar19[3] = 0" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9 = (int *)(*pcVar29)(piVar6);" (assignment_expression "piVar9 = (int *)(*pcVar29)(piVar6)" identifier = (cast_expression "(int *)(*pcVar29)(piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar6)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\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                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" { (labeled_statement "LAB_0002d128:\n                    pbVar16 = (byte *)0x2;" statement_identifier : (expression_statement "pbVar16 = (byte *)0x2;" (assignment_expression "pbVar16 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 2;" (assignment_expression "pbVar19[3] = 2" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar11 + -0x7d90))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d90))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d90))" ( (pointer_expression "**(code **)(iVar11 + -0x7d90)" * (pointer_expression "*(code **)(iVar11 + -0x7d90)" * (cast_expression "(code **)(iVar11 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d90)" ( (binary_expression "iVar11 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);" (assignment_expression "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (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)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002d128;" 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)) )) (goto_statement "goto LAB_0002d128;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar9 + 5) != '\0')" ( (binary_expression "*(char *)(piVar9 + 5) != '\0'" (pointer_expression "*(char *)(piVar9 + 5)" * (cast_expression "(char *)(piVar9 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 5)" ( (binary_expression "piVar9 + 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 "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6)" identifier = (call_expression "(**(code **)(iVar24 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar24 + -0x7d6c)" * (pointer_expression "*(code **)(iVar24 + -0x7d6c)" * (cast_expression "(code **)(iVar24 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d6c)" ( (binary_expression "iVar24 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;" statement_identifier : (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" { (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar11 + -0x7d6c))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar11 + -0x7d6c)" * (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar11 + -0x7d68))(pbVar13);" (call_expression "(**(code **)(iVar11 + -0x7d68))(pbVar13)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d68))" ( (pointer_expression "**(code **)(iVar11 + -0x7d68)" * (pointer_expression "*(code **)(iVar11 + -0x7d68)" * (cast_expression "(code **)(iVar11 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d68)" ( (binary_expression "iVar11 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar13)" ( identifier ))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (if_statement "if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) != 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar19 = (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" statement_identifier : (expression_statement "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;" statement_identifier : (expression_statement "*(byte **)pbVar19 = pbVar16;" (assignment_expression "*(byte **)pbVar19 = pbVar16" (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);" statement_identifier : (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar18 + -0xf4)" * (cast_expression "(int **)(puVar18 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);" statement_identifier : (expression_statement "pbVar13 = *(byte **)(puVar18 + -0x2c);" (assignment_expression "pbVar13 = *(byte **)(puVar18 + -0x2c)" identifier = (pointer_expression "*(byte **)(puVar18 + -0x2c)" * (cast_expression "(byte **)(puVar18 + -0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x2c)" ( (binary_expression "puVar18 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" if (parenthesized_expression "(pbVar13 != (byte *)*piVar9)" ( (binary_expression "pbVar13 != (byte *)*piVar9" identifier != (cast_expression "(byte *)*piVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) )) (compound_statement "{\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7c10)" * (cast_expression "(code **)(pcVar23 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7c10)" ( (binary_expression "pcVar23 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;" (assignment_expression "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70" (pointer_expression "*(code **)(puVar18 + -0x140)" * (cast_expression "(code **)(puVar18 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar29 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -300)" * (cast_expression "(undefined4 *)(puVar18 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -300)" ( (binary_expression "puVar18 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x130) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x130) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x130)" * (cast_expression "(byte **)(puVar18 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x130)" ( (binary_expression "puVar18 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x134) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x134) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x134)" * (cast_expression "(int **)(puVar18 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x134)" ( (binary_expression "puVar18 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x138) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x138) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x138)" * (cast_expression "(byte **)(puVar18 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x138)" ( (binary_expression "puVar18 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\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      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }" { (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c1a8)" * (cast_expression "(code **)(pcVar29 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c1a8)" ( (binary_expression "pcVar29 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0x7a;" (assignment_expression "*puVar5 = 0x7a" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" else (if_statement "if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar13 == (byte *)0xa)" ( (binary_expression "pbVar13 == (byte *)0xa" identifier == (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" { (expression_statement "uVar31 = *(undefined4 *)pbVar12;" (assignment_expression "uVar31 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c2c8)" * (cast_expression "(code **)(pcVar29 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c2c8)" ( (binary_expression "pcVar29 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar29 + 0x1bea8)" * (cast_expression "(int *)(pcVar29 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x1bea8)" ( (binary_expression "pcVar29 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" { (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar18 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar18 + -0x140)" * (cast_expression "(int *)(puVar18 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar31)" ( identifier ))) ;) (expression_statement "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);" (assignment_expression "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x140)" * (cast_expression "(int *)(puVar18 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar12[0] = 0;" (assignment_expression "pbVar12[0] = 0" (subscript_expression "pbVar12[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[2] = 0;" (assignment_expression "pbVar12[2] = 0" (subscript_expression "pbVar12[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[3] = 0;" (assignment_expression "pbVar12[3] = 0" (subscript_expression "pbVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(*pcVar29)();" (assignment_expression "puVar5 = (undefined4 *)(*pcVar29)()" identifier = (cast_expression "(undefined4 *)(*pcVar29)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0x3d;" (assignment_expression "*puVar5 = 0x3d" (pointer_expression "*puVar5" * identifier) = number_literal) ;) })) })))) (return_statement "return pbVar13;" return identifier ;) })) (return_statement "return *(byte **)(puVar18 + -0x108);" return (pointer_expression "*(byte **)(puVar18 + -0x108)" * (cast_expression "(byte **)(puVar18 + -0x108)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar9[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar9[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar9[5] & 0xffff0000U)" ( (binary_expression "piVar9[5] & 0xffff0000U" (subscript_expression "piVar9[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" { (if_statement "if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" if (parenthesized_expression "(*piVar9 == iVar28)" ( (binary_expression "*piVar9 == iVar28" (pointer_expression "*piVar9" * identifier) == identifier) )) (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" identifier = (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar9[1] == *(int *)(puVar18 + -0xfc))" ( (binary_expression "piVar9[1] == *(int *)(puVar18 + -0xfc)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" else (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" { (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" identifier = (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar24 == *(int *)(puVar18 + -0xf0))" ( (binary_expression "iVar24 == *(int *)(puVar18 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar18 + -0xf0)" * (cast_expression "(int *)(puVar18 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);" statement_identifier : (expression_statement "pbVar12 = (byte *)((int)piVar9 + 0x13);" (assignment_expression "pbVar12 = (byte *)((int)piVar9 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar9 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar18 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar18 + -0x118)" * (cast_expression "(undefined4 *)(puVar18 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x118)" ( (binary_expression "puVar18 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" identifier = identifier) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar13,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar13,pbVar12,puVar21)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28))" ( (binary_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)" (parenthesized_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)))" ( (binary_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" (parenthesized_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar18 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar18 + -0xb8)" * (cast_expression "(uint *)(puVar18 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xb8)" ( (binary_expression "puVar18 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" ( (binary_expression "*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)" (pointer_expression "*(int *)(puVar18 + -0xd0)" * (cast_expression "(int *)(puVar18 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xc0) != iVar28)" ( (binary_expression "*(int *)(puVar18 + -0xc0) != iVar28" (pointer_expression "*(int *)(puVar18 + -0xc0)" * (cast_expression "(int *)(puVar18 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" ( (binary_expression "*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)" (pointer_expression "*(int *)(puVar18 + -0xbc)" * (cast_expression "(int *)(puVar18 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));" (assignment_expression "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" ( (binary_expression "*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108)" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);" (assignment_expression "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" identifier = (cast_expression "(byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar11 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar11 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar11 + -0x7ca4)" * (pointer_expression "*(code **)(iVar11 + -0x7ca4)" * (cast_expression "(code **)(iVar11 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7ca4)" ( (binary_expression "iVar11 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" if (parenthesized_expression "(pbVar27 <= pbVar16)" ( (binary_expression "pbVar27 <= pbVar16" identifier <= identifier) )) (compound_statement "{\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" { (expression_statement "pbVar20 = *(byte **)(puVar18 + -0xf8);" (assignment_expression "pbVar20 = *(byte **)(puVar18 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xf8)" * (cast_expression "(byte **)(puVar18 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar18 + 4) != 0)" ( (binary_expression "*(int *)(puVar18 + 4) != 0" (pointer_expression "*(int *)(puVar18 + 4)" * (cast_expression "(int *)(puVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" { (expression_statement "pbVar16 = (byte *)0x22;" (assignment_expression "pbVar16 = (byte *)0x22" identifier = (cast_expression "(byte *)0x22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0x22;" (assignment_expression "pbVar19[3] = 0x22" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar7 = pbVar20;" (assignment_expression "pbVar7 = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }" if (parenthesized_expression "(pbVar20 < pbVar16)" ( (binary_expression "pbVar20 < pbVar16" identifier < identifier) )) (compound_statement "{\n      pbVar7 = pbVar16;\n    }" { (expression_statement "pbVar7 = pbVar16;" (assignment_expression "pbVar7 = pbVar16" identifier = identifier) ;) })) (expression_statement "pbVar17 = pbVar7 + (int)pbVar20;" (assignment_expression "pbVar17 = pbVar7 + (int)pbVar20" identifier = (binary_expression "pbVar7 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c78);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c78)" * (cast_expression "(code **)(iVar11 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c78)" ( (binary_expression "iVar11 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar17 < pbVar20)" ( (binary_expression "pbVar17 < pbVar20" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" { (labeled_statement "LAB_0002d338:\n      pbVar16 = (byte *)0xc;" statement_identifier : (expression_statement "pbVar16 = (byte *)0xc;" (assignment_expression "pbVar16 = (byte *)0xc" identifier = (cast_expression "(byte *)0xc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0xc;" (assignment_expression "pbVar19[3] = 0xc" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar18 + -0x104) = pbVar7;" (assignment_expression "*(byte **)(puVar18 + -0x104) = pbVar7" (pointer_expression "*(byte **)(puVar18 + -0x104)" * (cast_expression "(byte **)(puVar18 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" identifier = identifier) ;) (expression_statement "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" identifier = (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);" (assignment_expression "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" identifier = (call_expression "(**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" ( (pointer_expression "**(code **)(iVar11 + -0x7be0)" * (pointer_expression "*(code **)(iVar11 + -0x7be0)" * (cast_expression "(code **)(iVar11 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7be0)" ( (binary_expression "iVar11 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" ( (binary_expression "pbVar27 + iVar24 + *(int *)(puVar18 + -0x104)" (binary_expression "pbVar27 + iVar24" identifier + identifier) + (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar27 + iVar24" identifier + identifier) , (binary_expression "*(int *)(puVar18 + -0xf8) - (int)pbVar27" (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar18 + -0xf8) = pbVar17;" (assignment_expression "*(byte **)(puVar18 + -0xf8) = pbVar17" (pointer_expression "*(byte **)(puVar18 + -0xf8)" * (cast_expression "(byte **)(puVar18 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0xe0)" * (cast_expression "(undefined4 *)(puVar18 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x108) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;" (assignment_expression "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" identifier = (call_expression "(**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" ( (pointer_expression "**(code **)(iVar11 + -0x7be0)" * (pointer_expression "*(code **)(iVar11 + -0x7be0)" * (cast_expression "(code **)(iVar11 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7be0)" ( (binary_expression "iVar11 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" ( (binary_expression "*(int *)(puVar18 + -0xe0) - (int)pbVar16" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar18 + -0xd8);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar18 + -0xd8)" * (cast_expression "(int *)(puVar18 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd8)" ( (binary_expression "puVar18 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" * (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" * (cast_expression "(undefined4 *)(puVar18 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" * (cast_expression "(undefined4 *)(puVar18 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd4)" ( (binary_expression "puVar18 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" * (cast_expression "(undefined4 *)(puVar18 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" * (cast_expression "(undefined4 *)(puVar18 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002ce58;" goto statement_identifier ;) })))
(translation_unit "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  int *piVar9;\n  int iVar10;\n  byte *pbVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  byte *pbVar19;\n  wchar_t *unaff_s5;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  byte *pbVar21;\n  undefined1 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  code *pcVar31;\n  undefined4 uVar32;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern);\n  puVar23 = PTR_DAT_00049208;\n  iVar12 = (int)pattern[1];\n  if (iVar12 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = (patternlist *)&list;\n    puVar5 = auStack_68;\n    unaff_s6 = pbVar20;\nLAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return -1;\n  }\n  pcVar30 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar23 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar23 + 0x25450;\n  puVar6 = *(undefined4 **)(puVar23 + 0x1d86c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar3;\n  *(code **)(puVar22 + -4) = pcVar30;\n  *(byte **)(puVar22 + -0xc) = pbVar20;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x14) = unaff_s5;\n  *(char **)(puVar22 + -0x18) = string;\n  *(undefined **)(puVar22 + -0x20) = puVar2;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(char **)(puVar22 + -0x28) = pattern;\n  *(undefined4 **)(puVar22 + -0x144) = puVar6;\n  *(byte **)(puVar22 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar6;\n  pbVar21 = *(byte **)(puVar23 + 0x1d488);\n  pbVar20 = pbVar14;\n  pbVar28 = pbVar13;\n  if (pbVar17 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    pattern = (char *)(uVar4 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);\n    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar4 = 0;\n  if (pbVar28 != pbVar14) {\n    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar12 = *(int *)(puVar22 + -0x2c);\n  if (iVar12 == **(int **)(puVar22 + -0x144)) {\n    return uVar4;\n  }\n  pcVar30 = *(code **)(puVar3 + -0x7c10);\n  pcVar31 = gnu_fnmatch;\n  (*pcVar30)();\n  puVar5 = puVar22 + -0x1e0;\n  pcVar24 = *(code **)(pcVar30 + 0x1cbc4);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar7 = *(int **)(pcVar30 + 0x1cc28);\n  *(byte **)(puVar22 + -0x180) = pbVar28;\n  *(byte **)(puVar22 + -0x198) = pbVar17;\n  *(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c;\n  *(code **)(puVar22 + -0x17c) = pcVar31;\n  *(byte **)(puVar22 + -0x184) = pbVar21;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x18c) = unaff_s5;\n  *(char **)(puVar22 + -400) = string;\n  *(byte **)(puVar22 + -0x194) = pbVar14;\n  *(char **)(puVar22 + -0x1a0) = pattern;\n  *(int *)(puVar22 + -0x1b4) = iVar12;\n  *(byte **)(puVar22 + -0x1b8) = pbVar13;\n  *(int *)(puVar22 + -0x1a4) = *piVar7;\n  iVar12 = (*pcVar24)();\n  iVar25 = *(int *)(puVar22 + -0x1c8);\n  if (iVar12 == 1) {\nLAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);\n    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);\n    *(byte **)(puVar22 + -0x1d0) = pbVar20;\n    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));\n    iVar12 = *(int *)(puVar22 + -0x1c8);\n    puVar5 = puVar22 + -0x1e0;\n  }\n  else {\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }\n  iVar25 = *(int *)(puVar22 + -0x1a4);\n  pcVar30 = *(code **)(iVar12 + -0x7c10);\n  if (iVar25 == *piVar7) {\n    return (int)pbVar18;\n  }\n  pcVar31 = rpl_getcwd;\n  (*pcVar30)();\n  pcVar24 = pcVar30 + 0x244c0;\n  puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc);\n  *(undefined4 **)(puVar5 + -0xf4) = puVar6;\n  *(code **)(puVar5 + -0x110) = pcVar24;\n  *(code **)(puVar5 + -4) = pcVar31;\n  *(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0;\n  *(byte **)(puVar5 + -0xc) = pbVar21;\n  *(byte **)(puVar5 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar5 + -0x14) = unaff_s5;\n  *(char **)(puVar5 + -0x18) = string;\n  *(byte **)(puVar5 + -0x1c) = pbVar14;\n  *(byte **)(puVar5 + -0x20) = pbVar20;\n  *(int **)(puVar5 + -0x24) = piVar7;\n  *(byte **)(puVar5 + -0x28) = pbVar18;\n  *(byte **)(puVar5 + 4) = pbVar13;\n  *(int *)(puVar5 + -0x100) = iVar25;\n  *(undefined4 *)(puVar5 + -0x2c) = *puVar6;\n  if (pbVar13 == (byte *)0x0) {\n    if (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n    *puVar6 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar5 + -0xf4);\nLAB_0002d15c:\n  iVar12 = *(int *)(puVar5 + -0x2c);\n  if (iVar12 != *piVar9) {\n    pcVar30 = *(code **)(pcVar24 + -0x7c10);\n    uVar32 = 0x2d36c;\n    (*pcVar30)();\n    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;\n    *(undefined4 *)(puVar5 + -300) = uVar32;\n    *(byte **)(puVar5 + -0x130) = pbVar20;\n    *(int **)(puVar5 + -0x134) = piVar7;\n    *(byte **)(puVar5 + -0x138) = pbVar18;\n    if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }\n    return iVar12;\n  }\n  return *(int *)(puVar5 + -0x108);\ncode_r0x0002d0ec:\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar30 = *(code **)(iVar12 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }\n    pcVar30 = *(code **)(iVar12 + -0x7d38);\n    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar13 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar5 + -0x118) = 0x100;\n  pbVar17 = pbVar14;\n  iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (iVar25 != 0) goto LAB_0002cf10;\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if (((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))) goto LAB_0002cf18;\n  pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (pbVar28 <= pbVar18) {\n    pbVar21 = *(byte **)(puVar5 + -0xf8);\n    if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar11 = pbVar21;\n    if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }\n    pbVar19 = pbVar11 + (int)pbVar21;\n    pcVar30 = *(code **)(iVar12 + -0x7c78);\n    if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar5 + -0x104) = pbVar11;\n    pbVar17 = pbVar19;\n    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n    iVar12 = *(int *)(puVar5 + -0x110);\n    if (iVar25 == 0) goto LAB_0002d338;\n    uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);\n    iVar12 = *(int *)(puVar5 + -0x110);\n    *(byte **)(puVar5 + -0xf8) = pbVar19;\n    *(undefined4 *)(puVar5 + -0xe0) = uVar32;\n    *(int *)(puVar5 + -0x108) = iVar25;\n  }\n  iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18);\n  iVar26 = *(int *)(puVar5 + -0x110);\n  iVar29 = *(int *)(puVar5 + -0xd8);\n  *(int *)(puVar5 + -0xe0) = iVar12 + -1;\n  *(undefined1 *)(iVar12 + -1) = 0x2f;\n  *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4);\n  *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  int *piVar9;\n  int iVar10;\n  byte *pbVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  byte *pbVar19;\n  wchar_t *unaff_s5;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  byte *pbVar21;\n  undefined1 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  code *pcVar31;\n  undefined4 uVar32;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern);\n  puVar23 = PTR_DAT_00049208;\n  iVar12 = (int)pattern[1];\n  if (iVar12 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = (patternlist *)&list;\n    puVar5 = auStack_68;\n    unaff_s6 = pbVar20;\nLAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return -1;\n  }\n  pcVar30 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar23 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar23 + 0x25450;\n  puVar6 = *(undefined4 **)(puVar23 + 0x1d86c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar3;\n  *(code **)(puVar22 + -4) = pcVar30;\n  *(byte **)(puVar22 + -0xc) = pbVar20;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x14) = unaff_s5;\n  *(char **)(puVar22 + -0x18) = string;\n  *(undefined **)(puVar22 + -0x20) = puVar2;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(char **)(puVar22 + -0x28) = pattern;\n  *(undefined4 **)(puVar22 + -0x144) = puVar6;\n  *(byte **)(puVar22 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar6;\n  pbVar21 = *(byte **)(puVar23 + 0x1d488);\n  pbVar20 = pbVar14;\n  pbVar28 = pbVar13;\n  if (pbVar17 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    pattern = (char *)(uVar4 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);\n    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar4 = 0;\n  if (pbVar28 != pbVar14) {\n    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar12 = *(int *)(puVar22 + -0x2c);\n  if (iVar12 == **(int **)(puVar22 + -0x144)) {\n    return uVar4;\n  }\n  pcVar30 = *(code **)(puVar3 + -0x7c10);\n  pcVar31 = gnu_fnmatch;\n  (*pcVar30)();\n  puVar5 = puVar22 + -0x1e0;\n  pcVar24 = *(code **)(pcVar30 + 0x1cbc4);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar7 = *(int **)(pcVar30 + 0x1cc28);\n  *(byte **)(puVar22 + -0x180) = pbVar28;\n  *(byte **)(puVar22 + -0x198) = pbVar17;\n  *(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c;\n  *(code **)(puVar22 + -0x17c) = pcVar31;\n  *(byte **)(puVar22 + -0x184) = pbVar21;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x18c) = unaff_s5;\n  *(char **)(puVar22 + -400) = string;\n  *(byte **)(puVar22 + -0x194) = pbVar14;\n  *(char **)(puVar22 + -0x1a0) = pattern;\n  *(int *)(puVar22 + -0x1b4) = iVar12;\n  *(byte **)(puVar22 + -0x1b8) = pbVar13;\n  *(int *)(puVar22 + -0x1a4) = *piVar7;\n  iVar12 = (*pcVar24)();\n  iVar25 = *(int *)(puVar22 + -0x1c8);\n  if (iVar12 == 1) {\nLAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);\n    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);\n    *(byte **)(puVar22 + -0x1d0) = pbVar20;\n    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));\n    iVar12 = *(int *)(puVar22 + -0x1c8);\n    puVar5 = puVar22 + -0x1e0;\n  }\n  else {\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }\n  iVar25 = *(int *)(puVar22 + -0x1a4);\n  pcVar30 = *(code **)(iVar12 + -0x7c10);\n  if (iVar25 == *piVar7) {\n    return (int)pbVar18;\n  }\n  pcVar31 = rpl_getcwd;\n  (*pcVar30)();\n  pcVar24 = pcVar30 + 0x244c0;\n  puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc);\n  *(undefined4 **)(puVar5 + -0xf4) = puVar6;\n  *(code **)(puVar5 + -0x110) = pcVar24;\n  *(code **)(puVar5 + -4) = pcVar31;\n  *(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0;\n  *(byte **)(puVar5 + -0xc) = pbVar21;\n  *(byte **)(puVar5 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar5 + -0x14) = unaff_s5;\n  *(char **)(puVar5 + -0x18) = string;\n  *(byte **)(puVar5 + -0x1c) = pbVar14;\n  *(byte **)(puVar5 + -0x20) = pbVar20;\n  *(int **)(puVar5 + -0x24) = piVar7;\n  *(byte **)(puVar5 + -0x28) = pbVar18;\n  *(byte **)(puVar5 + 4) = pbVar13;\n  *(int *)(puVar5 + -0x100) = iVar25;\n  *(undefined4 *)(puVar5 + -0x2c) = *puVar6;\n  if (pbVar13 == (byte *)0x0) {\n    if (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n    *puVar6 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar5 + -0xf4);\nLAB_0002d15c:\n  iVar12 = *(int *)(puVar5 + -0x2c);\n  if (iVar12 != *piVar9) {\n    pcVar30 = *(code **)(pcVar24 + -0x7c10);\n    uVar32 = 0x2d36c;\n    (*pcVar30)();\n    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;\n    *(undefined4 *)(puVar5 + -300) = uVar32;\n    *(byte **)(puVar5 + -0x130) = pbVar20;\n    *(int **)(puVar5 + -0x134) = piVar7;\n    *(byte **)(puVar5 + -0x138) = pbVar18;\n    if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }\n    return iVar12;\n  }\n  return *(int *)(puVar5 + -0x108);\ncode_r0x0002d0ec:\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar30 = *(code **)(iVar12 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }\n    pcVar30 = *(code **)(iVar12 + -0x7d38);\n    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar13 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar5 + -0x118) = 0x100;\n  pbVar17 = pbVar14;\n  iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (iVar25 != 0) goto LAB_0002cf10;\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if (((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))) goto LAB_0002cf18;\n  pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (pbVar28 <= pbVar18) {\n    pbVar21 = *(byte **)(puVar5 + -0xf8);\n    if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar11 = pbVar21;\n    if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }\n    pbVar19 = pbVar11 + (int)pbVar21;\n    pcVar30 = *(code **)(iVar12 + -0x7c78);\n    if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar5 + -0x104) = pbVar11;\n    pbVar17 = pbVar19;\n    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n    iVar12 = *(int *)(puVar5 + -0x110);\n    if (iVar25 == 0) goto LAB_0002d338;\n    uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);\n    iVar12 = *(int *)(puVar5 + -0x110);\n    *(byte **)(puVar5 + -0xf8) = pbVar19;\n    *(undefined4 *)(puVar5 + -0xe0) = uVar32;\n    *(int *)(puVar5 + -0x108) = iVar25;\n  }\n  iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18);\n  iVar26 = *(int *)(puVar5 + -0x110);\n  iVar29 = *(int *)(puVar5 + -0xd8);\n  *(int *)(puVar5 + -0xe0) = iVar12 + -1;\n  *(undefined1 *)(iVar12 + -1) = 0x2f;\n  *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4);\n  *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0);\n  goto LAB_0002ce58;\n}" primitive_type (function_declarator "ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)" identifier (parameter_list "(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)" ( (parameter_declaration "int opt" primitive_type identifier) , (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "char *string_end" primitive_type (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  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined1 *puVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  int *piVar9;\n  int iVar10;\n  byte *pbVar11;\n  int iVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  byte *pbVar19;\n  wchar_t *unaff_s5;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  byte *pbVar21;\n  undefined1 *puVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  int iVar25;\n  int iVar26;\n  undefined1 *puVar27;\n  byte *pbVar28;\n  int iVar29;\n  code *pcVar30;\n  code *pcVar31;\n  undefined4 uVar32;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar22 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern);\n  puVar23 = PTR_DAT_00049208;\n  iVar12 = (int)pattern[1];\n  if (iVar12 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = (patternlist *)&list;\n    puVar5 = auStack_68;\n    unaff_s6 = pbVar20;\nLAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return -1;\n  }\n  pcVar30 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar23 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar23 + 0x25450;\n  puVar6 = *(undefined4 **)(puVar23 + 0x1d86c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar3;\n  *(code **)(puVar22 + -4) = pcVar30;\n  *(byte **)(puVar22 + -0xc) = pbVar20;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x14) = unaff_s5;\n  *(char **)(puVar22 + -0x18) = string;\n  *(undefined **)(puVar22 + -0x20) = puVar2;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(char **)(puVar22 + -0x28) = pattern;\n  *(undefined4 **)(puVar22 + -0x144) = puVar6;\n  *(byte **)(puVar22 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar6;\n  pbVar21 = *(byte **)(puVar23 + 0x1d488);\n  pbVar20 = pbVar14;\n  pbVar28 = pbVar13;\n  if (pbVar17 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    pattern = (char *)(uVar4 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);\n    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar4 = 0;\n  if (pbVar28 != pbVar14) {\n    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar12 = *(int *)(puVar22 + -0x2c);\n  if (iVar12 == **(int **)(puVar22 + -0x144)) {\n    return uVar4;\n  }\n  pcVar30 = *(code **)(puVar3 + -0x7c10);\n  pcVar31 = gnu_fnmatch;\n  (*pcVar30)();\n  puVar5 = puVar22 + -0x1e0;\n  pcVar24 = *(code **)(pcVar30 + 0x1cbc4);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar7 = *(int **)(pcVar30 + 0x1cc28);\n  *(byte **)(puVar22 + -0x180) = pbVar28;\n  *(byte **)(puVar22 + -0x198) = pbVar17;\n  *(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c;\n  *(code **)(puVar22 + -0x17c) = pcVar31;\n  *(byte **)(puVar22 + -0x184) = pbVar21;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(wchar_t **)(puVar22 + -0x18c) = unaff_s5;\n  *(char **)(puVar22 + -400) = string;\n  *(byte **)(puVar22 + -0x194) = pbVar14;\n  *(char **)(puVar22 + -0x1a0) = pattern;\n  *(int *)(puVar22 + -0x1b4) = iVar12;\n  *(byte **)(puVar22 + -0x1b8) = pbVar13;\n  *(int *)(puVar22 + -0x1a4) = *piVar7;\n  iVar12 = (*pcVar24)();\n  iVar25 = *(int *)(puVar22 + -0x1c8);\n  if (iVar12 == 1) {\nLAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);\n    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);\n    *(byte **)(puVar22 + -0x1d0) = pbVar20;\n    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));\n    iVar12 = *(int *)(puVar22 + -0x1c8);\n    puVar5 = puVar22 + -0x1e0;\n  }\n  else {\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }\n  iVar25 = *(int *)(puVar22 + -0x1a4);\n  pcVar30 = *(code **)(iVar12 + -0x7c10);\n  if (iVar25 == *piVar7) {\n    return (int)pbVar18;\n  }\n  pcVar31 = rpl_getcwd;\n  (*pcVar30)();\n  pcVar24 = pcVar30 + 0x244c0;\n  puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc);\n  *(undefined4 **)(puVar5 + -0xf4) = puVar6;\n  *(code **)(puVar5 + -0x110) = pcVar24;\n  *(code **)(puVar5 + -4) = pcVar31;\n  *(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0;\n  *(byte **)(puVar5 + -0xc) = pbVar21;\n  *(byte **)(puVar5 + -0x10) = unaff_s6;\n  *(wchar_t **)(puVar5 + -0x14) = unaff_s5;\n  *(char **)(puVar5 + -0x18) = string;\n  *(byte **)(puVar5 + -0x1c) = pbVar14;\n  *(byte **)(puVar5 + -0x20) = pbVar20;\n  *(int **)(puVar5 + -0x24) = piVar7;\n  *(byte **)(puVar5 + -0x28) = pbVar18;\n  *(byte **)(puVar5 + 4) = pbVar13;\n  *(int *)(puVar5 + -0x100) = iVar25;\n  *(undefined4 *)(puVar5 + -0x2c) = *puVar6;\n  if (pbVar13 == (byte *)0x0) {\n    if (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n    *puVar6 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar5 + -0xf4);\nLAB_0002d15c:\n  iVar12 = *(int *)(puVar5 + -0x2c);\n  if (iVar12 != *piVar9) {\n    pcVar30 = *(code **)(pcVar24 + -0x7c10);\n    uVar32 = 0x2d36c;\n    (*pcVar30)();\n    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;\n    *(undefined4 *)(puVar5 + -300) = uVar32;\n    *(byte **)(puVar5 + -0x130) = pbVar20;\n    *(int **)(puVar5 + -0x134) = piVar7;\n    *(byte **)(puVar5 + -0x138) = pbVar18;\n    if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }\n    return iVar12;\n  }\n  return *(int *)(puVar5 + -0x108);\ncode_r0x0002d0ec:\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar30 = *(code **)(iVar12 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }\n    pcVar30 = *(code **)(iVar12 + -0x7d38);\n    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar13 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar5 + -0x118) = 0x100;\n  pbVar17 = pbVar14;\n  iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (iVar25 != 0) goto LAB_0002cf10;\n  pcVar30 = *(code **)(iVar12 + -0x7d38);\n  if (((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))) goto LAB_0002cf18;\n  pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108));\n  pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13);\n  iVar12 = *(int *)(puVar5 + -0x110);\n  if (pbVar28 <= pbVar18) {\n    pbVar21 = *(byte **)(puVar5 + -0xf8);\n    if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar11 = pbVar21;\n    if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }\n    pbVar19 = pbVar11 + (int)pbVar21;\n    pcVar30 = *(code **)(iVar12 + -0x7c78);\n    if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar5 + -0x104) = pbVar11;\n    pbVar17 = pbVar19;\n    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n    iVar12 = *(int *)(puVar5 + -0x110);\n    if (iVar25 == 0) goto LAB_0002d338;\n    uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);\n    iVar12 = *(int *)(puVar5 + -0x110);\n    *(byte **)(puVar5 + -0xf8) = pbVar19;\n    *(undefined4 *)(puVar5 + -0xe0) = uVar32;\n    *(int *)(puVar5 + -0x108) = iVar25;\n  }\n  iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18);\n  iVar26 = *(int *)(puVar5 + -0x110);\n  iVar29 = *(int *)(puVar5 + -0xd8);\n  *(int *)(puVar5 + -0xe0) = iVar12 + -1;\n  *(undefined1 *)(iVar12 + -1) = 0x2f;\n  *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4);\n  *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "patternlist *ppVar15;" type_identifier (pointer_declarator "*ppVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "wchar_t *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "wchar_t *pattern_00;" type_identifier (pointer_declarator "*pattern_00" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * 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 "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "patternlist *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "patternlist *list;" type_identifier (pointer_declarator "*list" * identifier) ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar22 = auStack_68;" (assignment_expression "puVar22 = auStack_68" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)(pattern + 1);" (assignment_expression "pbVar20 = (byte *)(pattern + 1)" identifier = (cast_expression "(byte *)(pattern + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattern + 1)" ( (binary_expression "pattern + 1" identifier + number_literal) )))) ;) (expression_statement "list = (patternlist *)0x0;" (assignment_expression "list = (patternlist *)0x0" identifier = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000495fc;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000495fc" * (cast_expression "(byte **)PTR___stack_chk_guard_000495fc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar13 = (byte *)pattern;" (assignment_expression "pbVar13 = (byte *)pattern" identifier = (cast_expression "(byte *)pattern" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar14 = (byte *)string;" (assignment_expression "pbVar14 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(pattern)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0004953c)(pattern)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004953c)(pattern)" (parenthesized_expression "(*(code *)PTR_strlen_0004953c)" ( (pointer_expression "*(code *)PTR_strlen_0004953c" * (cast_expression "(code *)PTR_strlen_0004953c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattern)" ( identifier ))))) ;) (expression_statement "puVar23 = PTR_DAT_00049208;" (assignment_expression "puVar23 = PTR_DAT_00049208" identifier = identifier) ;) (expression_statement "iVar12 = (int)pattern[1];" (assignment_expression "iVar12 = (int)pattern[1]" identifier = (cast_expression "(int)pattern[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pattern[1]" identifier [ number_literal ]))) ;) (if_statement "if (iVar12 != 0) {\n    unaff_s5 = (wchar_t *)0x0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = (patternlist *)&list;\n    puVar5 = auStack_68;\n    unaff_s6 = pbVar20;\nLAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (wchar_t *)0x0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = (patternlist *)&list;\n    puVar5 = auStack_68;\n    unaff_s6 = pbVar20;\nLAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 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 "unaff_s1 = (uint)(opt - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(opt - 0x3fU < 2)" identifier = (call_expression "(uint)(opt - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(opt - 0x3fU < 2)" ( (binary_expression "opt - 0x3fU < 2" (binary_expression "opt - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "puVar3 = PTR_LAB_00049218 + 0x671c;" (assignment_expression "puVar3 = PTR_LAB_00049218 + 0x671c" identifier = (binary_expression "PTR_LAB_00049218 + 0x671c" identifier + number_literal)) ;) (expression_statement "local_34 = (patternlist *)&list;" (assignment_expression "local_34 = (patternlist *)&list" identifier = (cast_expression "(patternlist *)&list" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&list" & identifier))) ;) (expression_statement "puVar5 = auStack_68;" (assignment_expression "puVar5 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar20;" (assignment_expression "unaff_s6 = pbVar20" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);" statement_identifier : (do_statement "do {\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    } while (iVar12 != 0);" do (compound_statement "{\n      puVar22 = puVar5;\n      unaff_s3 = puVar23;\n      if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }\n      puVar5 = puVar22;\n    }" { (expression_statement "puVar22 = puVar5;" (assignment_expression "puVar22 = puVar5" identifier = identifier) ;) (expression_statement "unaff_s3 = puVar23;" (assignment_expression "unaff_s3 = puVar23" identifier = identifier) ;) (if_statement "if (iVar12 == 0x5b) {\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }" if (parenthesized_expression "(iVar12 == 0x5b)" ( (binary_expression "iVar12 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar12 = (int)(char)pbVar18[1];\n      }" { (if_statement "if (*(int *)(puVar23 + -0x5830) == 0) {\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }" if (parenthesized_expression "(*(int *)(puVar23 + -0x5830) == 0)" ( (binary_expression "*(int *)(puVar23 + -0x5830) == 0" (pointer_expression "*(int *)(puVar23 + -0x5830)" * (cast_expression "(int *)(puVar23 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x5830)" ( (binary_expression "puVar23 + -0x5830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar32 = 0xffffffff;\n          if (iVar12 != 0) {\n            uVar32 = 1;\n          }\n          *(undefined4 *)(puVar23 + -0x5830) = uVar32;\n        }" { (expression_statement "iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3);" (assignment_expression "iVar12 = (*(code *)PTR_getenv_0004956c)(puVar3)" identifier = (call_expression "(*(code *)PTR_getenv_0004956c)(puVar3)" (parenthesized_expression "(*(code *)PTR_getenv_0004956c)" ( (pointer_expression "*(code *)PTR_getenv_0004956c" * (cast_expression "(code *)PTR_getenv_0004956c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier )))) ;) (expression_statement "uVar32 = 0xffffffff;" (assignment_expression "uVar32 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar12 != 0) {\n            uVar32 = 1;\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar32 = 1;\n          }" { (expression_statement "uVar32 = 1;" (assignment_expression "uVar32 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar23 + -0x5830) = uVar32;" (assignment_expression "*(undefined4 *)(puVar23 + -0x5830) = uVar32" (pointer_expression "*(undefined4 *)(puVar23 + -0x5830)" * (cast_expression "(undefined4 *)(puVar23 + -0x5830)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x5830)" ( (binary_expression "puVar23 + -0x5830" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "bVar8 = pbVar20[1];" (assignment_expression "bVar8 = pbVar20[1]" identifier = (subscript_expression "pbVar20[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar20 + 1;" (assignment_expression "pbVar18 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }" if (parenthesized_expression "((bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e))))" ( (binary_expression "(bVar8 == 0x21) || ((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))" (parenthesized_expression "(bVar8 == 0x21)" ( (binary_expression "bVar8 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e))" ( (binary_expression "*(int *)(puVar23 + -0x5830) < 0 && (bVar8 == 0x5e)" (binary_expression "*(int *)(puVar23 + -0x5830) < 0" (pointer_expression "*(int *)(puVar23 + -0x5830)" * (cast_expression "(int *)(puVar23 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x5830)" ( (binary_expression "puVar23 + -0x5830" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar8 == 0x5e)" ( (binary_expression "bVar8 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }" { (expression_statement "bVar8 = pbVar20[2];" (assignment_expression "bVar8 = pbVar20[2]" identifier = (subscript_expression "pbVar20[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar18 = pbVar20 + 2;" (assignment_expression "pbVar18 = pbVar20 + 2" identifier = (binary_expression "pbVar20 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar8 == 0x5d) {\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" if (parenthesized_expression "(bVar8 == 0x5d)" ( (binary_expression "bVar8 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar8 = pbVar18[1];\n          pbVar18 = pbVar18 + 1;\n        }" { (expression_statement "bVar8 = pbVar18[1];" (assignment_expression "bVar8 = 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 "pbVar13 = (byte *)0x5d;" (assignment_expression "pbVar13 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }" while (parenthesized_expression "(pbVar20 = pbVar18 + 1, bVar8 != 0x5d)" ( (comma_expression "pbVar20 = pbVar18 + 1, bVar8 != 0x5d" (assignment_expression "pbVar20 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) , (binary_expression "bVar8 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }" { (if_statement "if (bVar8 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar18 = pbVar20;" (assignment_expression "pbVar18 = pbVar20" identifier = identifier) ;) (expression_statement "bVar8 = *pbVar20;" (assignment_expression "bVar8 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) })) (expression_statement "iVar12 = (int)(char)pbVar18[1];" (assignment_expression "iVar12 = (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        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }" else (compound_statement "{\n        pbVar13 = &DAT_c0000601;\n        uVar4 = iVar12 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }\njoined_r0x0002b91c:\n        pbVar20 = pbVar20 + 1;\n      }" { (expression_statement "pbVar13 = &DAT_c0000601;" (assignment_expression "pbVar13 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar4 = iVar12 - 0x21U & 0xff;" (assignment_expression "uVar4 = iVar12 - 0x21U & 0xff" identifier = (binary_expression "iVar12 - 0x21U & 0xff" (binary_expression "iVar12 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)(uVar4 < 0x20);" (assignment_expression "pbVar14 = (byte *)(uint)(uVar4 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar4 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar4 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < 0x20)" ( (binary_expression "uVar4 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar14 == (byte *)0x0) {\n          if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\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 ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];\n        }" { (if_statement "if ((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)) {\n            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0))" ( (binary_expression "(iVar12 == 0x7c) && (unaff_s5 == (wchar_t *)0x0)" (parenthesized_expression "(iVar12 == 0x7c)" ( (binary_expression "iVar12 == 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            pbVar18 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar20 + -(int)unaff_s6;\n            pbVar17 = pbVar20 + 1;\n            iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar27 = puVar22 + iVar25;\n            ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);\n            puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);\n            iVar12 = (int)(char)pbVar20[1];\n            *puVar5 = 0;\n            ppVar15->next = (patternlist *)0x0;\n            local_34->next = ppVar15;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar17;\n            pbVar20 = pbVar17;\n            puVar22 = puVar22 + iVar25;\n            local_34 = ppVar15;\n            puVar5 = puVar27;\n            if (iVar12 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar18 = local_44;" (assignment_expression "pbVar18 = local_44" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar18 = pbVar20 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar18 = pbVar20 + (1 - (int)unaff_s6);" (assignment_expression "pbVar18 = pbVar20 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar20 + (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 "pbVar14 = pbVar20 + -(int)unaff_s6;" (assignment_expression "pbVar14 = pbVar20 + -(int)unaff_s6" identifier = (binary_expression "pbVar20 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar17 = pbVar20 + 1;" (assignment_expression "pbVar17 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar25 = -(((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 "puVar27 = puVar22 + iVar25;" (assignment_expression "puVar27 = puVar22 + iVar25" identifier = (binary_expression "puVar22 + iVar25" identifier + identifier)) ;) (expression_statement "ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18);" (assignment_expression "ppVar15 = (patternlist *)(puVar22 + iVar25 + 0x18)" identifier = (cast_expression "(patternlist *)(puVar22 + iVar25 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar25 + 0x18)" ( (binary_expression "puVar22 + iVar25 + 0x18" (binary_expression "puVar22 + iVar25" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c);" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)(puVar22 + iVar25 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar25 + 0x1c)" ( (binary_expression "puVar22 + iVar25 + 0x1c" (binary_expression "puVar22 + iVar25" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar12 = (int)(char)pbVar20[1];" (assignment_expression "iVar12 = (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 ])))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "ppVar15->next = (patternlist *)0x0;" (assignment_expression "ppVar15->next = (patternlist *)0x0" (field_expression "ppVar15->next" identifier -> field_identifier) = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34->next = ppVar15;" (assignment_expression "local_34->next = ppVar15" (field_expression "local_34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar17;" (assignment_expression "unaff_s6 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar20 = pbVar17;" (assignment_expression "pbVar20 = pbVar17" identifier = identifier) ;) (expression_statement "puVar22 = puVar22 + iVar25;" (assignment_expression "puVar22 = puVar22 + iVar25" identifier = (binary_expression "puVar22 + iVar25" identifier + identifier)) ;) (expression_statement "local_34 = ppVar15;" (assignment_expression "local_34 = ppVar15" identifier = identifier) ;) (expression_statement "puVar5 = puVar27;" (assignment_expression "puVar5 = puVar27" identifier = identifier) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar12 = (int)(char)pbVar20[1];" statement_identifier : (expression_statement "iVar12 = (int)(char)pbVar20[1];" (assignment_expression "iVar12 = (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          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }\n          if (iVar12 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }\n          iVar12 = (int)(char)pbVar20[1];\n          unaff_s5 = (wchar_t *)((int)unaff_s5 + -1);\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar4 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar4 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar4 & 0x1f)" number_literal >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar12 = (int)(char)pbVar20[1];\n            if (iVar12 != 0x28) goto joined_r0x0002b91c;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = (wchar_t *)((int)unaff_s5 + 1);\n            pbVar20 = pbVar20 + 1;\n            uVar4 = 7;\n          }" { (expression_statement "iVar12 = (int)(char)pbVar20[1];" (assignment_expression "iVar12 = (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 ])))) ;) (if_statement "if (iVar12 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar12 != 0x28)" ( (binary_expression "iVar12 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0002b91c;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (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 "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar12 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar12 != 0x29)" ( (binary_expression "iVar12 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (wchar_t *)0x0) {\n            if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\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 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }\n            break;\n          }" { (if_statement "if (1 < opt - 0x3fU) {\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < opt - 0x3fU)" ( (binary_expression "1 < opt - 0x3fU" number_literal < (binary_expression "opt - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              local_44 = pbVar20 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_44 = pbVar20 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar20 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar20 + (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)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }" if (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n              *puVar5 = 0;\n              ((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;\n              return iVar12;\n            }" { (expression_statement "iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar12 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);" (assignment_expression "puVar5 = (undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                       (*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)\n                                 (puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar12 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" ( (binary_expression "puVar22 + iVar12 + 0x1c" (binary_expression "puVar22 + iVar12" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar20 - (int)unaff_s6" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0;" (assignment_expression "((patternlist *)(puVar22 + iVar12 + 0x18))->next = (patternlist *)0x0" (field_expression "((patternlist *)(puVar22 + iVar12 + 0x18))->next" (parenthesized_expression "((patternlist *)(puVar22 + iVar12 + 0x18))" ( (cast_expression "(patternlist *)(puVar22 + iVar12 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar12 + 0x18)" ( (binary_expression "puVar22 + iVar12 + 0x18" (binary_expression "puVar22 + iVar12" identifier + identifier) + number_literal) ))) )) -> field_identifier) = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18);" (assignment_expression "local_34->next = (patternlist *)(puVar22 + iVar12 + 0x18)" (field_expression "local_34->next" identifier -> field_identifier) = (cast_expression "(patternlist *)(puVar22 + iVar12 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar12 + 0x18)" ( (binary_expression "puVar22 + iVar12 + 0x18" (binary_expression "puVar22 + iVar12" identifier + identifier) + number_literal) )))) ;) (if_statement "if (list == (patternlist *)0x0) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" if (parenthesized_expression "(list == (patternlist *)0x0)" ( (binary_expression "list == (patternlist *)0x0" identifier == (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" { (expression_statement "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60);" (assignment_expression "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60)" identifier = (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,0x454,\n                                    PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a14" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (pbVar20[-1] != 0x29) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" if (parenthesized_expression "(pbVar20[-1] != 0x29)" ( (binary_expression "pbVar20[-1] != 0x29" (subscript_expression "pbVar20[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" { (expression_statement "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60);" (assignment_expression "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60)" identifier = (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,0x455,\n                                    PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a24" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) )))) ;) (return_statement "return iVar12;" return identifier ;) })) (if_statement "if (0x1f < opt - 0x21U) {\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" if (parenthesized_expression "(0x1f < opt - 0x21U)" ( (binary_expression "0x1f < opt - 0x21U" number_literal < (binary_expression "opt - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);\n                return iVar12;\n              }" { (expression_statement "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60);" (assignment_expression "iVar12 = (*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60)" identifier = (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                   (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,0x4ad,\n                                    PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a38" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) )))) ;) (return_statement "return iVar12;" return identifier ;) })) comment comment (expression_statement "iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()\n              ;" (assignment_expression "iVar12 = (*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0))" ( (binary_expression "&_gp + *(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)" * (cast_expression "(int *)(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0)" ( (binary_expression "PTR_LAB_00049218 + (opt - 0x21U) * 4 + 0x7bf0" (binary_expression "PTR_LAB_00049218 + (opt - 0x21U) * 4" identifier + (binary_expression "(opt - 0x21U) * 4" (parenthesized_expression "(opt - 0x21U)" ( (binary_expression "opt - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar12;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar12 = (int)(char)pbVar20[1];" (assignment_expression "iVar12 = (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 ])))) ;) (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        pbVar20 = pbVar20 + 1;" statement_identifier : (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar5 = puVar22;" (assignment_expression "puVar5 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return -1;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar2) {\n    return -1;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar2)" ( (binary_expression "local_2c == *(byte **)puVar2" identifier == (pointer_expression "*(byte **)puVar2" * (cast_expression "(byte **)puVar2" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) }))) (expression_statement "pcVar30 = internal_fnmatch;" (assignment_expression "pcVar30 = internal_fnmatch" identifier = identifier) ;) (expression_statement "pbVar18 = local_2c;" (assignment_expression "pbVar18 = local_2c" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_000495d0;" (assignment_expression "puVar23 = 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 "puVar3 = puVar23 + 0x25450;" (assignment_expression "puVar3 = puVar23 + 0x25450" identifier = (binary_expression "puVar23 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar6 = *(undefined4 **)(puVar23 + 0x1d86c);" (assignment_expression "puVar6 = *(undefined4 **)(puVar23 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(puVar23 + 0x1d86c)" * (cast_expression "(undefined4 **)(puVar23 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d86c)" ( (binary_expression "puVar23 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar22 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar22 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar22 + -8)" * (cast_expression "(undefined1 **)(puVar22 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -8)" ( (binary_expression "puVar22 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x1c) = unaff_s3;" (assignment_expression "*(undefined **)(puVar22 + -0x1c) = unaff_s3" (pointer_expression "*(undefined **)(puVar22 + -0x1c)" * (cast_expression "(undefined **)(puVar22 + -0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1c)" ( (binary_expression "puVar22 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x160) = puVar3;" (assignment_expression "*(undefined **)(puVar22 + -0x160) = puVar3" (pointer_expression "*(undefined **)(puVar22 + -0x160)" * (cast_expression "(undefined **)(puVar22 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x160)" ( (binary_expression "puVar22 + -0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar22 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar22 + -4) = pcVar30" (pointer_expression "*(code **)(puVar22 + -4)" * (cast_expression "(code **)(puVar22 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -4)" ( (binary_expression "puVar22 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar22 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar22 + -0xc)" * (cast_expression "(byte **)(puVar22 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0xc)" ( (binary_expression "puVar22 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar22 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar22 + -0x10)" * (cast_expression "(byte **)(puVar22 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x10)" ( (binary_expression "puVar22 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar22 + -0x14)" * (cast_expression "(wchar_t **)(puVar22 + -0x14)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x14)" ( (binary_expression "puVar22 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar22 + -0x18) = string;" (assignment_expression "*(char **)(puVar22 + -0x18) = string" (pointer_expression "*(char **)(puVar22 + -0x18)" * (cast_expression "(char **)(puVar22 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x18)" ( (binary_expression "puVar22 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x20) = puVar2;" (assignment_expression "*(undefined **)(puVar22 + -0x20) = puVar2" (pointer_expression "*(undefined **)(puVar22 + -0x20)" * (cast_expression "(undefined **)(puVar22 + -0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x20)" ( (binary_expression "puVar22 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar22 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar22 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar22 + -0x24)" * (cast_expression "(uint *)(puVar22 + -0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x24)" ( (binary_expression "puVar22 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar22 + -0x28) = pattern;" (assignment_expression "*(char **)(puVar22 + -0x28) = pattern" (pointer_expression "*(char **)(puVar22 + -0x28)" * (cast_expression "(char **)(puVar22 + -0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x28)" ( (binary_expression "puVar22 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar22 + -0x144) = puVar6;" (assignment_expression "*(undefined4 **)(puVar22 + -0x144) = puVar6" (pointer_expression "*(undefined4 **)(puVar22 + -0x144)" * (cast_expression "(undefined4 **)(puVar22 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x144)" ( (binary_expression "puVar22 + -0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar22 + -0x154)" * (cast_expression "(byte **)(puVar22 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x154)" ( (binary_expression "puVar22 + -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 *)(puVar22 + -0x2c) = *puVar6;" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = *puVar6" (pointer_expression "*(undefined4 *)(puVar22 + -0x2c)" * (cast_expression "(undefined4 *)(puVar22 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "pbVar21 = *(byte **)(puVar23 + 0x1d488);" (assignment_expression "pbVar21 = *(byte **)(puVar23 + 0x1d488)" identifier = (pointer_expression "*(byte **)(puVar23 + 0x1d488)" * (cast_expression "(byte **)(puVar23 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d488)" ( (binary_expression "puVar23 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = pbVar14;" (assignment_expression "pbVar20 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar13;" (assignment_expression "pbVar28 = pbVar13" identifier = identifier) ;) (if_statement "if (pbVar17 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    pattern = (char *)(uVar4 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);\n    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 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    uVar4 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    pattern = (char *)(uVar4 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);\n    *(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" { (expression_statement "uVar4 = *(uint *)(puVar22 + 0x10);" (assignment_expression "uVar4 = *(uint *)(puVar22 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = uVar4 & 2;" (assignment_expression "unaff_s1 = uVar4 & 2" identifier = (binary_expression "uVar4 & 2" identifier & number_literal)) ;) (expression_statement "pattern = (char *)(uVar4 & 0x10);" (assignment_expression "pattern = (char *)(uVar4 & 0x10)" identifier = (cast_expression "(char *)(uVar4 & 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar22 + -0x140) = uVar4 & 5;" (assignment_expression "*(uint *)(puVar22 + -0x140) = uVar4 & 5" (pointer_expression "*(uint *)(puVar22 + -0x140)" * (cast_expression "(uint *)(puVar22 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x140)" ( (binary_expression "puVar22 + -0x140" identifier + number_literal) )))) = (binary_expression "uVar4 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar23 + 0x1d478)" (pointer_expression "*(undefined4 *)(puVar22 + -0x148)" * (cast_expression "(undefined4 *)(puVar22 + -0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x148)" ( (binary_expression "puVar22 + -0x148" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar23 + 0x1d478)" * (cast_expression "(undefined4 *)(puVar23 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d478)" ( (binary_expression "puVar23 + 0x1d478" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70;" (assignment_expression "*(byte **)(puVar22 + -0x14c) = pbVar21 + 0x7c70" (pointer_expression "*(byte **)(puVar22 + -0x14c)" * (cast_expression "(byte **)(puVar22 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x14c)" ( (binary_expression "puVar22 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar21 + 0x7c70" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar22 + -0x138) = *(int *)(puVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar22 + -0x138)" * (cast_expression "(int *)(puVar22 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x138)" ( (binary_expression "puVar22 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar23 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar23 + 0x1d488)" * (cast_expression "(int *)(puVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d488)" ( (binary_expression "puVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar22 + -0x13c) = *(int *)(puVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar22 + -0x13c)" * (cast_expression "(int *)(puVar22 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x13c)" ( (binary_expression "puVar22 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar23 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar23 + 0x1d488)" * (cast_expression "(int *)(puVar23 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d488)" ( (binary_expression "puVar23 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "string = (char *)pbVar18;" (assignment_expression "string = (char *)pbVar18" identifier = (cast_expression "(char *)pbVar18" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s6 = (byte *)string_end;" (assignment_expression "unaff_s6 = (byte *)string_end" identifier = (cast_expression "(byte *)string_end" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);" do (compound_statement "{\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }\n      uVar4 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar28 == pbVar14) goto LAB_0002c064;\n      pbVar17 = (byte *)(uint)*pbVar28;\n      if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }\n      uVar4 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_0002c064;\n      string = *(char **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar28 = pbVar28 + 1;\n      *(byte **)(puVar22 + -0x154) = (byte *)string + 1;\n    }" { (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (int)pbVar17 * 4 + 3);\n      }" if (parenthesized_expression "(pattern != (char *)0x0)" ( (binary_expression "pattern != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (int)pbVar17 * 4 + 3);\n      }" { (expression_statement "piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar22 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x160)" * (cast_expression "(undefined **)(puVar22 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x160)" ( (binary_expression "puVar22 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (int)pbVar17 * 4 + 3);" (assignment_expression "pbVar18 = (byte *)(uint)*(byte *)(*piVar7 + (int)pbVar17 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar7 + (int)pbVar17 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar7 + (int)pbVar17 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + (int)pbVar17 * 4 + 3)" ( (binary_expression "*piVar7 + (int)pbVar17 * 4 + 3" (binary_expression "*piVar7 + (int)pbVar17 * 4" (pointer_expression "*piVar7" * 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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\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        iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar12;\n      }" { comment comment (expression_statement "iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();" (assignment_expression "iVar12 = (*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar3 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar22 + -0x14c) +\n                                             ((uint)(pbVar18 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar22 + -0x14c)" * (cast_expression "(int *)(puVar22 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x14c)" ( (binary_expression "puVar22 + -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 iVar12;" return identifier ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar28 == pbVar14) goto LAB_0002c064;" if (parenthesized_expression "(pbVar28 == pbVar14)" ( (binary_expression "pbVar28 == pbVar14" 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 (pattern != (char *)0x0) {\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }" if (parenthesized_expression "(pattern != (char *)0x0)" ( (binary_expression "pattern != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar22 + -0x160);\n        pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);\n      }" { (expression_statement "piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar22 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar22 + -0x160)" * (cast_expression "(undefined **)(puVar22 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x160)" ( (binary_expression "puVar22 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4);" (assignment_expression "pbVar17 = *(byte **)(*piVar7 + (int)pbVar17 * 4)" identifier = (pointer_expression "*(byte **)(*piVar7 + (int)pbVar17 * 4)" * (cast_expression "(byte **)(*piVar7 + (int)pbVar17 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + (int)pbVar17 * 4)" ( (binary_expression "*piVar7 + (int)pbVar17 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = 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 "string = *(char **)(puVar22 + -0x154);" (assignment_expression "string = *(char **)(puVar22 + -0x154)" identifier = (pointer_expression "*(char **)(puVar22 + -0x154)" * (cast_expression "(char **)(puVar22 + -0x154)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x154)" ( (binary_expression "puVar22 + -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)(byte)*string;" (assignment_expression "pbVar17 = (byte *)(uint)(byte)*string" identifier = (binary_expression "(byte *)(uint)(byte)*string" (cast_expression "(byte *)(uint)(byte)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier )))) * identifier)) ;) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar22 + -0x154) = (byte *)string + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = (byte *)string + 1" (pointer_expression "*(byte **)(puVar22 + -0x154)" * (cast_expression "(byte **)(puVar22 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x154)" ( (binary_expression "puVar22 + -0x154" identifier + number_literal) )))) = (binary_expression "(byte *)string + 1" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (pbVar28 != pbVar14) {\n    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar28 != pbVar14)" ( (binary_expression "pbVar28 != pbVar14" identifier != identifier) )) (compound_statement "{\n    string = (char *)(*(uint *)(puVar22 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }\n  }" { (expression_statement "string = (char *)(*(uint *)(puVar22 + 0x10) & 8);" (assignment_expression "string = (char *)(*(uint *)(puVar22 + 0x10) & 8)" identifier = (cast_expression "(char *)(*(uint *)(puVar22 + 0x10) & 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar22 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar22 + 0x10) & 8" (pointer_expression "*(uint *)(puVar22 + 0x10)" * (cast_expression "(uint *)(puVar22 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x10)" ( (binary_expression "puVar22 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if ((byte *)string == (byte *)0x0) {\n      uVar4 = 1;\n    }\n    else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\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      uVar4 = 1;\n    }" { (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }" else (compound_statement "{\n      uVar4 = (uint)(*pbVar28 != 0x2f);\n    }" { (expression_statement "uVar4 = (uint)(*pbVar28 != 0x2f);" (assignment_expression "uVar4 = (uint)(*pbVar28 != 0x2f)" identifier = (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  iVar12 = *(int *)(puVar22 + -0x2c);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar22 + -0x2c);" (assignment_expression "iVar12 = *(int *)(puVar22 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar22 + -0x2c)" * (cast_expression "(int *)(puVar22 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x2c)" ( (binary_expression "puVar22 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar12 == **(int **)(puVar22 + -0x144)) {\n    return uVar4;\n  }" if (parenthesized_expression "(iVar12 == **(int **)(puVar22 + -0x144))" ( (binary_expression "iVar12 == **(int **)(puVar22 + -0x144)" identifier == (pointer_expression "**(int **)(puVar22 + -0x144)" * (pointer_expression "*(int **)(puVar22 + -0x144)" * (cast_expression "(int **)(puVar22 + -0x144)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x144)" ( (binary_expression "puVar22 + -0x144" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "pcVar30 = *(code **)(puVar3 + -0x7c10);" (assignment_expression "pcVar30 = *(code **)(puVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar3 + -0x7c10)" * (cast_expression "(code **)(puVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7c10)" ( (binary_expression "puVar3 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = gnu_fnmatch;" (assignment_expression "pcVar31 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar5 = puVar22 + -0x1e0;" (assignment_expression "puVar5 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar24 = *(code **)(pcVar30 + 0x1cbc4);" (assignment_expression "pcVar24 = *(code **)(pcVar30 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar30 + 0x1cbc4)" * (cast_expression "(code **)(pcVar30 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1cbc4)" ( (binary_expression "pcVar30 + 0x1cbc4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar22 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar22 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar22 + -0x19c)" * (cast_expression "(uint *)(puVar22 + -0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x19c)" ( (binary_expression "puVar22 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar7 = *(int **)(pcVar30 + 0x1cc28);" (assignment_expression "piVar7 = *(int **)(pcVar30 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar30 + 0x1cc28)" * (cast_expression "(int **)(pcVar30 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1cc28)" ( (binary_expression "pcVar30 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar22 + -0x180) = pbVar28;" (assignment_expression "*(byte **)(puVar22 + -0x180) = pbVar28" (pointer_expression "*(byte **)(puVar22 + -0x180)" * (cast_expression "(byte **)(puVar22 + -0x180)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x180)" ( (binary_expression "puVar22 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x198) = pbVar17;" (assignment_expression "*(byte **)(puVar22 + -0x198) = pbVar17" (pointer_expression "*(byte **)(puVar22 + -0x198)" * (cast_expression "(byte **)(puVar22 + -0x198)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x198)" ( (binary_expression "puVar22 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c;" (assignment_expression "*(code **)(puVar22 + -0x1c8) = pcVar30 + 0x2480c" (pointer_expression "*(code **)(puVar22 + -0x1c8)" * (cast_expression "(code **)(puVar22 + -0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) )))) = (binary_expression "pcVar30 + 0x2480c" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar22 + -0x17c) = pcVar31;" (assignment_expression "*(code **)(puVar22 + -0x17c) = pcVar31" (pointer_expression "*(code **)(puVar22 + -0x17c)" * (cast_expression "(code **)(puVar22 + -0x17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x17c)" ( (binary_expression "puVar22 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x184) = pbVar21;" (assignment_expression "*(byte **)(puVar22 + -0x184) = pbVar21" (pointer_expression "*(byte **)(puVar22 + -0x184)" * (cast_expression "(byte **)(puVar22 + -0x184)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x184)" ( (binary_expression "puVar22 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar22 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar22 + -0x188)" * (cast_expression "(byte **)(puVar22 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x188)" ( (binary_expression "puVar22 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar22 + -0x18c) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar22 + -0x18c) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar22 + -0x18c)" * (cast_expression "(wchar_t **)(puVar22 + -0x18c)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x18c)" ( (binary_expression "puVar22 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar22 + -400) = string;" (assignment_expression "*(char **)(puVar22 + -400) = string" (pointer_expression "*(char **)(puVar22 + -400)" * (cast_expression "(char **)(puVar22 + -400)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -400)" ( (binary_expression "puVar22 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x194) = pbVar14;" (assignment_expression "*(byte **)(puVar22 + -0x194) = pbVar14" (pointer_expression "*(byte **)(puVar22 + -0x194)" * (cast_expression "(byte **)(puVar22 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x194)" ( (binary_expression "puVar22 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar22 + -0x1a0) = pattern;" (assignment_expression "*(char **)(puVar22 + -0x1a0) = pattern" (pointer_expression "*(char **)(puVar22 + -0x1a0)" * (cast_expression "(char **)(puVar22 + -0x1a0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1a0)" ( (binary_expression "puVar22 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1b4) = iVar12;" (assignment_expression "*(int *)(puVar22 + -0x1b4) = iVar12" (pointer_expression "*(int *)(puVar22 + -0x1b4)" * (cast_expression "(int *)(puVar22 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1b4)" ( (binary_expression "puVar22 + -0x1b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x1b8) = pbVar13;" (assignment_expression "*(byte **)(puVar22 + -0x1b8) = pbVar13" (pointer_expression "*(byte **)(puVar22 + -0x1b8)" * (cast_expression "(byte **)(puVar22 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1b8)" ( (binary_expression "puVar22 + -0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1a4) = *piVar7;" (assignment_expression "*(int *)(puVar22 + -0x1a4) = *piVar7" (pointer_expression "*(int *)(puVar22 + -0x1a4)" * (cast_expression "(int *)(puVar22 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1a4)" ( (binary_expression "puVar22 + -0x1a4" identifier + number_literal) )))) = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "iVar12 = (*pcVar24)();" (assignment_expression "iVar12 = (*pcVar24)()" identifier = (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 1) {\nLAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);\n    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);\n    *(byte **)(puVar22 + -0x1d0) = pbVar20;\n    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));\n    iVar12 = *(int *)(puVar22 + -0x1c8);\n    puVar5 = puVar22 + -0x1e0;\n  }\n  else {\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar12 == 1)" ( (binary_expression "iVar12 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);\n    iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);\n    *(byte **)(puVar22 + -0x1d0) = pbVar20;\n    pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));\n    iVar12 = *(int *)(puVar22 + -0x1c8);\n    puVar5 = puVar22 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar13 = *(byte **)(puVar22 + -0x1b8);" statement_identifier : (expression_statement "pbVar13 = *(byte **)(puVar22 + -0x1b8);" (assignment_expression "pbVar13 = *(byte **)(puVar22 + -0x1b8)" identifier = (pointer_expression "*(byte **)(puVar22 + -0x1b8)" * (cast_expression "(byte **)(puVar22 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1b8)" ( (binary_expression "puVar22 + -0x1b8" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13);" (assignment_expression "iVar12 = (**(code **)(iVar25 + -0x7ca4))(pbVar13)" identifier = (call_expression "(**(code **)(iVar25 + -0x7ca4))(pbVar13)" (parenthesized_expression "(**(code **)(iVar25 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar25 + -0x7ca4)" * (pointer_expression "*(code **)(iVar25 + -0x7ca4)" * (cast_expression "(code **)(iVar25 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ca4)" ( (binary_expression "iVar25 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar13)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar22 + -0x1d0)" * (cast_expression "(byte **)(puVar22 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1d0)" ( (binary_expression "puVar22 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0));" (assignment_expression "pbVar18 = (byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnmatch(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0))" identifier (argument_list "(*(char **)(puVar22 + -0x1b4),(char *)pbVar13,\n                                       (char *)(pbVar13 + iVar12),\n                                       SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                       *(int *)(puVar22 + -0x1d0))" ( (pointer_expression "*(char **)(puVar22 + -0x1b4)" * (cast_expression "(char **)(puVar22 + -0x1b4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1b4)" ( (binary_expression "puVar22 + -0x1b4" identifier + number_literal) )))) , (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(pbVar13 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + iVar12)" ( (binary_expression "pbVar13 + iVar12" identifier + identifier) ))) , (call_expression "SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar20 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar20 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar20 << 0x1d)" ( (binary_expression "(int)pbVar20 << 0x1d" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar22 + -0x1d0)" * (cast_expression "(int *)(puVar22 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1d0)" ( (binary_expression "puVar22 + -0x1d0" identifier + number_literal) )))) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar12 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = puVar22 + -0x1e0;" (assignment_expression "puVar5 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar16 = puVar22 + -0x1ac;\n    pcVar30 = *(code **)(iVar25 + -0x7ba4);\n    unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);\n    pbVar14 = (byte *)(iVar12 + 1);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    uVar32 = 0x129;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar22 + -0x1b8;\n    pbVar13 = unaff_s6;\n    string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);\n    pbVar21 = (byte *)string + 1;\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;\n    iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);\n    iVar25 = *(int *)(puVar22 + -0x1c8);\n    if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar18 = pbVar14 + (int)pbVar21;\n    if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }\n  }" { (expression_statement "puVar16 = puVar22 + -0x1ac;" (assignment_expression "puVar16 = puVar22 + -0x1ac" identifier = (binary_expression "puVar22 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar30 = *(code **)(iVar25 + -0x7ba4);" (assignment_expression "pcVar30 = *(code **)(iVar25 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (wchar_t *)(puVar22 + -0x1b4);" (assignment_expression "unaff_s5 = (wchar_t *)(puVar22 + -0x1b4)" identifier = (cast_expression "(wchar_t *)(puVar22 + -0x1b4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1b4)" ( (binary_expression "puVar22 + -0x1b4" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar22 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1ac)" ( (binary_expression "puVar22 + -0x1ac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar22 + -0x1a8)" * (cast_expression "(undefined4 *)(puVar22 + -0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1a8)" ( (binary_expression "puVar22 + -0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16);" (assignment_expression "iVar12 = (*pcVar30)(0,unaff_s5,0,puVar16)" identifier = (call_expression "(*pcVar30)(0,unaff_s5,0,puVar16)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(0,unaff_s5,0,puVar16)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar14 = (byte *)(iVar12 + 1);" (assignment_expression "pbVar14 = (byte *)(iVar12 + 1)" identifier = (cast_expression "(byte *)(iVar12 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 1)" ( (binary_expression "iVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar14 == (byte *)0x0) goto LAB_0002ca44;" 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)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);" (assignment_expression "iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16)" identifier = (call_expression "(**(code **)(iVar25 + -0x7be8))(puVar16)" (parenthesized_expression "(**(code **)(iVar25 + -0x7be8))" ( (pointer_expression "**(code **)(iVar25 + -0x7be8)" * (pointer_expression "*(code **)(iVar25 + -0x7be8)" * (cast_expression "(code **)(iVar25 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7be8)" ( (binary_expression "iVar25 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "uVar32 = 0x129;" (assignment_expression "uVar32 = 0x129" identifier = number_literal) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;)) (expression_statement "unaff_s6 = puVar22 + -0x1b8;" (assignment_expression "unaff_s6 = puVar22 + -0x1b8" identifier = (binary_expression "puVar22 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16);" (assignment_expression "string = (char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16)" identifier = (cast_expression "(char *)(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar25 + -0x7ba4))(0,unaff_s6,0,puVar16)" (parenthesized_expression "(**(code **)(iVar25 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar25 + -0x7ba4)" * (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar16)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar21 = (byte *)string + 1;" (assignment_expression "pbVar21 = (byte *)string + 1" identifier = (binary_expression "(byte *)string + 1" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar21 == (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (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 "iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16);" (assignment_expression "iVar12 = (**(code **)(iVar25 + -0x7be8))(puVar16)" identifier = (call_expression "(**(code **)(iVar25 + -0x7be8))(puVar16)" (parenthesized_expression "(**(code **)(iVar25 + -0x7be8))" ( (pointer_expression "**(code **)(iVar25 + -0x7be8)" * (pointer_expression "*(code **)(iVar25 + -0x7be8)" * (cast_expression "(code **)(iVar25 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7be8)" ( (binary_expression "iVar25 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar32 = 0x12d;\n      goto LAB_0002ccf0;\n    }" { (expression_statement "uVar32 = 0x12d;" (assignment_expression "uVar32 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_0002ccf0;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar14 + (int)pbVar21;" (assignment_expression "pbVar18 = pbVar14 + (int)pbVar21" identifier = (binary_expression "pbVar14 + (int)pbVar21" identifier + (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)) {\nLAB_0002cc10:\n      pbVar18 = (byte *)0xffffffff;\n      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 0xc;\n    }\n    else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18))" ( (binary_expression "(pbVar18 < pbVar14) || ((byte *)0x3fffffff < pbVar18)" (parenthesized_expression "(pbVar18 < pbVar14)" ( (binary_expression "pbVar18 < pbVar14" 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      puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      *puVar6 = 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 "puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(iVar25 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar25 + -0x7cc8))()" ( (type_descriptor "undefined4 *" 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 "iVar12 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar12 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }" else (if_statement "if (pbVar18 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -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      iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);\n      pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);\n      pbVar17 = (byte *)(pattern_00 + (int)pbVar14);\n      (**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      unaff_s5 = pattern_00;\n      puVar5 = puVar22 + iVar10 + -0x1e0;\n    }" { (expression_statement "iVar10 = -((int)pbVar18 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar10 = -((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 "pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8);" (assignment_expression "pattern_00 = (wchar_t *)(puVar22 + iVar10 + -0x1c8)" identifier = (cast_expression "(wchar_t *)(puVar22 + iVar10 + -0x1c8)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar10 + -0x1c8)" ( (binary_expression "puVar22 + iVar10 + -0x1c8" (binary_expression "puVar22 + iVar10" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar17 = (byte *)(pattern_00 + (int)pbVar14);" (assignment_expression "pbVar17 = (byte *)(pattern_00 + (int)pbVar14)" identifier = (cast_expression "(byte *)(pattern_00 + (int)pbVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattern_00 + (int)pbVar14)" ( (binary_expression "pattern_00 + (int)pbVar14" identifier + (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16);" (call_expression "(**(code **)(iVar25 + -0x7ba4))(pattern_00,unaff_s5,pbVar14,puVar16)" (parenthesized_expression "(**(code **)(iVar25 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar25 + -0x7ba4)" * (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pattern_00,unaff_s5,pbVar14,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);" (assignment_expression "iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar32 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar32 = 0x147;" (assignment_expression "uVar32 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar25 + -0x7d80))\n                    (*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar25 + -0x7d80))" ( (pointer_expression "**(code **)(iVar25 + -0x7d80)" * (pointer_expression "*(code **)(iVar25 + -0x7d80)" * (cast_expression "(code **)(iVar25 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d80)" ( (binary_expression "iVar25 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar25 + -0x7fc8) + 0x7a70,*(int *)(iVar25 + -0x7fc8) + 0x7a60,uVar32,\n                     *(int *)(iVar25 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x7a70" (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) , (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x7a60" (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) , identifier , (binary_expression "*(int *)(iVar25 + -0x7fc8) + 0x7d78" (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) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16);" (call_expression "(**(code **)(iVar25 + -0x7ba4))(pbVar17,unaff_s6,pbVar21,puVar16)" (parenthesized_expression "(**(code **)(iVar25 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar25 + -0x7ba4)" * (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar17,unaff_s6,pbVar21,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar22 + iVar10 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar22 + iVar10 + -0x1d0)" * (cast_expression "(byte **)(puVar22 + iVar10 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + iVar10 + -0x1d0)" ( (binary_expression "puVar22 + iVar10 + -0x1d0" (binary_expression "puVar22 + iVar10" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0));" (assignment_expression "pbVar18 = (byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnwmatch(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0))" identifier (argument_list "(pattern_00,(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + iVar10 + -0x1d0))" ( identifier , (cast_expression "(wchar_t *)pbVar17" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar17 + (int)string * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + (int)string * 4)" ( (binary_expression "pbVar17 + (int)string * 4" identifier + (binary_expression "(int)string * 4" (cast_expression "(int)string" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , (call_expression "SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar20 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar20 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar20 << 0x1d)" ( (binary_expression "(int)pbVar20 << 0x1d" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar22 + iVar10 + -0x1d0)" * (cast_expression "(int *)(puVar22 + iVar10 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar10 + -0x1d0)" ( (binary_expression "puVar22 + iVar10 + -0x1d0" (binary_expression "puVar22 + iVar10" identifier + identifier) + number_literal) )))) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar12 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "unaff_s5 = pattern_00;" (assignment_expression "unaff_s5 = pattern_00" identifier = identifier) ;) (expression_statement "puVar5 = puVar22 + iVar10 + -0x1e0;" (assignment_expression "puVar5 = puVar22 + iVar10 + -0x1e0" identifier = (binary_expression "puVar22 + iVar10 + -0x1e0" (binary_expression "puVar22 + iVar10" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }" else (compound_statement "{\n      iVar12 = (**(code **)(iVar25 + -0x7c80))();\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cc10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(int *)(puVar22 + -0x1bc) = iVar12;\n      pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);\n      (*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);\n      iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);\n      iVar25 = *(int *)(puVar22 + -0x1c8);\n      if (iVar12 == 0) goto LAB_0002cd10;\n      pcVar30 = *(code **)(iVar25 + -0x7ba4);\n      *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n      (*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);\n      *(byte **)(puVar22 + -0x1d0) = pbVar20;\n      pbVar13 = pbVar17;\n      pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));\n      (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));\n      iVar12 = *(int *)(puVar22 + -0x1c8);\n      pbVar14 = pbVar17;\n      puVar5 = puVar22 + -0x1e0;\n    }" { (expression_statement "iVar12 = (**(code **)(iVar25 + -0x7c80))();" (assignment_expression "iVar12 = (**(code **)(iVar25 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar25 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar25 + -0x7c80))" ( (pointer_expression "**(code **)(iVar25 + -0x7c80)" * (pointer_expression "*(code **)(iVar25 + -0x7c80)" * (cast_expression "(code **)(iVar25 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7c80)" ( (binary_expression "iVar25 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar30 = *(code **)(iVar25 + -0x7ba4);" (assignment_expression "pcVar30 = *(code **)(iVar25 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x1bc) = iVar12;" (assignment_expression "*(int *)(puVar22 + -0x1bc) = iVar12" (pointer_expression "*(int *)(puVar22 + -0x1bc)" * (cast_expression "(int *)(puVar22 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1bc)" ( (binary_expression "puVar22 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4);" (assignment_expression "pbVar17 = (byte *)(iVar12 + (int)pbVar14 * 4)" identifier = (cast_expression "(byte *)(iVar12 + (int)pbVar14 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + (int)pbVar14 * 4)" ( (binary_expression "iVar12 + (int)pbVar14 * 4" identifier + (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16);" (call_expression "(*pcVar30)(iVar12,unaff_s5,pbVar14,puVar16)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(iVar12,unaff_s5,pbVar14,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16);" (assignment_expression "iVar12 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7be8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7be8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar30 = *(code **)(iVar25 + -0x7ba4);" (assignment_expression "pcVar30 = *(code **)(iVar25 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7ba4)" * (cast_expression "(code **)(iVar25 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7ba4)" ( (binary_expression "iVar25 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1bc)" ( (binary_expression "puVar22 + -0x1bc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1bc)" ( (binary_expression "puVar22 + -0x1bc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16);" (call_expression "(*pcVar30)(pbVar17,unaff_s6,pbVar21,puVar16)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pbVar17,unaff_s6,pbVar21,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar22 + -0x1d0)" * (cast_expression "(byte **)(puVar22 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1d0)" ( (binary_expression "puVar22 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0));" (assignment_expression "pbVar18 = (byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0))" identifier = (cast_expression "(byte *)internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "internal_fnwmatch(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0))" identifier (argument_list "(*(wchar_t **)(puVar22 + -0x1bc),(wchar_t *)pbVar17,\n                                          (wchar_t *)(pbVar17 + (int)string * 4),\n                                          SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                          *(int *)(puVar22 + -0x1d0))" ( (pointer_expression "*(wchar_t **)(puVar22 + -0x1bc)" * (cast_expression "(wchar_t **)(puVar22 + -0x1bc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1bc)" ( (binary_expression "puVar22 + -0x1bc" identifier + number_literal) )))) , (cast_expression "(wchar_t *)pbVar17" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar17 + (int)string * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + (int)string * 4)" ( (binary_expression "pbVar17 + (int)string * 4" identifier + (binary_expression "(int)string * 4" (cast_expression "(int)string" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))) , (call_expression "SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar20 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar20 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar20 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar20 << 0x1d)" ( (binary_expression "(int)pbVar20 << 0x1d" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar22 + -0x1d0)" * (cast_expression "(int *)(puVar22 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1d0)" ( (binary_expression "puVar22 + -0x1d0" identifier + number_literal) )))) ))))) ;) (expression_statement "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar22 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7bd8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7bd8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar22 + -0x1bc))" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1bc)" ( (binary_expression "puVar22 + -0x1bc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar12 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar12 = *(int *)(puVar22 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1c8)" * (cast_expression "(int *)(puVar22 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1c8)" ( (binary_expression "puVar22 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = pbVar17;" (assignment_expression "pbVar14 = pbVar17" identifier = identifier) ;) (expression_statement "puVar5 = puVar22 + -0x1e0;" (assignment_expression "puVar5 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar25 = *(int *)(puVar22 + -0x1a4);" (assignment_expression "iVar25 = *(int *)(puVar22 + -0x1a4)" identifier = (pointer_expression "*(int *)(puVar22 + -0x1a4)" * (cast_expression "(int *)(puVar22 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1a4)" ( (binary_expression "puVar22 + -0x1a4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7c10);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7c10)" * (cast_expression "(code **)(iVar12 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7c10)" ( (binary_expression "iVar12 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == *piVar7) {\n    return (int)pbVar18;\n  }" if (parenthesized_expression "(iVar25 == *piVar7)" ( (binary_expression "iVar25 == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return (int)pbVar18;\n  }" { (return_statement "return (int)pbVar18;" return (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "pcVar31 = rpl_getcwd;" (assignment_expression "pcVar31 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar24 = pcVar30 + 0x244c0;" (assignment_expression "pcVar24 = pcVar30 + 0x244c0" identifier = (binary_expression "pcVar30 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar30 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar30 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar30 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1c8dc)" ( (binary_expression "pcVar30 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar5 + -0xf4) = puVar6;" (assignment_expression "*(undefined4 **)(puVar5 + -0xf4) = puVar6" (pointer_expression "*(undefined4 **)(puVar5 + -0xf4)" * (cast_expression "(undefined4 **)(puVar5 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xf4)" ( (binary_expression "puVar5 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar5 + -0x110) = pcVar24;" (assignment_expression "*(code **)(puVar5 + -0x110) = pcVar24" (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar5 + -4) = pcVar31;" (assignment_expression "*(code **)(puVar5 + -4) = pcVar31" (pointer_expression "*(code **)(puVar5 + -4)" * (cast_expression "(code **)(puVar5 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -4)" ( (binary_expression "puVar5 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar5 + -8) = puVar22 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar5 + -8)" * (cast_expression "(undefined1 **)(puVar5 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -8)" ( (binary_expression "puVar5 + -8" identifier + number_literal) )))) = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar5 + -0xc) = pbVar21;" (assignment_expression "*(byte **)(puVar5 + -0xc) = pbVar21" (pointer_expression "*(byte **)(puVar5 + -0xc)" * (cast_expression "(byte **)(puVar5 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xc)" ( (binary_expression "puVar5 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar5 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar5 + -0x10)" * (cast_expression "(byte **)(puVar5 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x10)" ( (binary_expression "puVar5 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(wchar_t **)(puVar5 + -0x14) = unaff_s5;" (assignment_expression "*(wchar_t **)(puVar5 + -0x14) = unaff_s5" (pointer_expression "*(wchar_t **)(puVar5 + -0x14)" * (cast_expression "(wchar_t **)(puVar5 + -0x14)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x14)" ( (binary_expression "puVar5 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar5 + -0x18) = string;" (assignment_expression "*(char **)(puVar5 + -0x18) = string" (pointer_expression "*(char **)(puVar5 + -0x18)" * (cast_expression "(char **)(puVar5 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x18)" ( (binary_expression "puVar5 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x1c) = pbVar14;" (assignment_expression "*(byte **)(puVar5 + -0x1c) = pbVar14" (pointer_expression "*(byte **)(puVar5 + -0x1c)" * (cast_expression "(byte **)(puVar5 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x1c)" ( (binary_expression "puVar5 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x20) = pbVar20;" (assignment_expression "*(byte **)(puVar5 + -0x20) = pbVar20" (pointer_expression "*(byte **)(puVar5 + -0x20)" * (cast_expression "(byte **)(puVar5 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x20)" ( (binary_expression "puVar5 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar5 + -0x24) = piVar7;" (assignment_expression "*(int **)(puVar5 + -0x24) = piVar7" (pointer_expression "*(int **)(puVar5 + -0x24)" * (cast_expression "(int **)(puVar5 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x24)" ( (binary_expression "puVar5 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x28) = pbVar18;" (assignment_expression "*(byte **)(puVar5 + -0x28) = pbVar18" (pointer_expression "*(byte **)(puVar5 + -0x28)" * (cast_expression "(byte **)(puVar5 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x28)" ( (binary_expression "puVar5 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + 4) = pbVar13;" (assignment_expression "*(byte **)(puVar5 + 4) = pbVar13" (pointer_expression "*(byte **)(puVar5 + 4)" * (cast_expression "(byte **)(puVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar5 + -0x100) = iVar25;" (assignment_expression "*(int *)(puVar5 + -0x100) = iVar25" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x2c) = *puVar6;" (assignment_expression "*(undefined4 *)(puVar5 + -0x2c) = *puVar6" (pointer_expression "*(undefined4 *)(puVar5 + -0x2c)" * (cast_expression "(undefined4 *)(puVar5 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x2c)" ( (binary_expression "puVar5 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar6" * identifier)) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n    if (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n    *puVar6 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\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 (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n    *puVar6 = 0x16;\n  }" { (if_statement "if (iVar25 == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar5 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n      *(int *)(puVar5 + -0x108) = iVar12;\n      if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar5 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar5 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar5 + -0xf8)" * (cast_expression "(undefined4 *)(puVar5 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));" statement_identifier : (expression_statement "iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8));" (assignment_expression "iVar12 = (**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar30 + 0x1c840))(*(undefined4 *)(puVar5 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar30 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar30 + 0x1c840)" * (pointer_expression "*(code **)(pcVar30 + 0x1c840)" * (cast_expression "(code **)(pcVar30 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1c840)" ( (binary_expression "pcVar30 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar5 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0xf8)" * (cast_expression "(undefined4 *)(puVar5 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar5 + -0x108) = iVar12;" (assignment_expression "*(int *)(puVar5 + -0x108) = iVar12" (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 == 0) {\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar9 = *(int **)(puVar5 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar9 = *(int **)(puVar5 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar5 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar5 + -0xf4)" * (cast_expression "(int **)(puVar5 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xf4)" ( (binary_expression "puVar5 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar30 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar30 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar30 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar30 + 0x1c7f8)" * (cast_expression "(code **)(pcVar30 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1c7f8)" ( (binary_expression "pcVar30 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar6 = 0x16;" (assignment_expression "*puVar6 = 0x16" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n    *(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);\nLAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);\n    puVar22 = puVar5 + -0xd0;\n    iVar10 = *(int *)(puVar5 + -0xf8);\n    pcVar30 = *(code **)(pcVar24 + -0x7d60);\n    pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar12 + iVar10 + -1) = 0;\n    iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n    iVar26 = *(int *)(puVar5 + -0x110);\n    if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();\n    pbVar18 = *(byte **)pbVar20;\n    pcVar24 = *(code **)(puVar5 + -0x110);\n    if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;\n    *(undefined4 *)(puVar5 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar5 + -0x100) == 0) {\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar5 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar5 + -0x100) == 0" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);" (assignment_expression "*(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4)" (pointer_expression "*(undefined4 *)(puVar5 + -0xf8)" * (cast_expression "(undefined4 *)(puVar5 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4);" (assignment_expression "*(undefined4 *)(puVar5 + -0xf8) = *(undefined4 *)(puVar5 + 4)" (pointer_expression "*(undefined4 *)(puVar5 + -0xf8)" * (cast_expression "(undefined4 *)(puVar5 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + 4)" * (cast_expression "(undefined4 *)(puVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100);" (assignment_expression "*(undefined4 *)(puVar5 + -0x108) = *(undefined4 *)(puVar5 + -0x100)" (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0x100)" * (cast_expression "(undefined4 *)(puVar5 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar12 = *(int *)(puVar5 + -0x108);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar5 + -0x108);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x108)" identifier = (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar22 = puVar5 + -0xd0;" (assignment_expression "puVar22 = puVar5 + -0xd0" identifier = (binary_expression "puVar5 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(puVar5 + -0xf8);" (assignment_expression "iVar10 = *(int *)(puVar5 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar5 + -0xf8)" * (cast_expression "(int *)(puVar5 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7d60);" (assignment_expression "pcVar30 = *(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 "pbVar13 = (byte *)(*(int *)(pcVar24 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar13 = (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 *)(iVar12 + iVar10 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar12 + iVar10 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar12 + iVar10 + -1)" * (cast_expression "(undefined1 *)(iVar12 + iVar10 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + iVar10 + -1)" ( (binary_expression "iVar12 + iVar10 + -1" (binary_expression "iVar12 + iVar10" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar25 = (*pcVar30)(3,pbVar13,puVar22);" (assignment_expression "iVar25 = (*pcVar30)(3,pbVar13,puVar22)" identifier = (call_expression "(*pcVar30)(3,pbVar13,puVar22)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(3,pbVar13,puVar22)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar26 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar25) {\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar25)" ( (binary_expression "-1 < iVar25" number_literal < identifier) )) (compound_statement "{\n      iVar25 = *(int *)(iVar26 + -0x7fc8);\n      pcVar30 = *(code **)(iVar26 + -0x7d60);\n      iVar29 = *(int *)(puVar5 + -0xc0);\n      *(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);\n      pbVar13 = (byte *)(iVar25 + 0x6154);\n      *(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);\n      iVar25 = (*pcVar30)(3,pbVar13,puVar22);\n      iVar26 = *(int *)(puVar5 + -0x110);\n      if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar25 = *(int *)(iVar26 + -0x7fc8);" (assignment_expression "iVar25 = *(int *)(iVar26 + -0x7fc8)" identifier = (pointer_expression "*(int *)(iVar26 + -0x7fc8)" * (cast_expression "(int *)(iVar26 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -0x7fc8)" ( (binary_expression "iVar26 + -0x7fc8" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = *(code **)(iVar26 + -0x7d60);" (assignment_expression "pcVar30 = *(code **)(iVar26 + -0x7d60)" identifier = (pointer_expression "*(code **)(iVar26 + -0x7d60)" * (cast_expression "(code **)(iVar26 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7d60)" ( (binary_expression "iVar26 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar5 + -0xc0);" (assignment_expression "iVar29 = *(int *)(puVar5 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar5 + -0xc0)" * (cast_expression "(int *)(puVar5 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xc0)" ( (binary_expression "puVar5 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar5 + -0x104)" * (cast_expression "(undefined4 *)(puVar5 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xd0)" * (cast_expression "(undefined4 *)(puVar5 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd0)" ( (binary_expression "puVar5 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = (byte *)(iVar25 + 0x6154);" (assignment_expression "pbVar13 = (byte *)(iVar25 + 0x6154)" identifier = (cast_expression "(byte *)(iVar25 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x6154)" ( (binary_expression "iVar25 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar5 + -0xfc)" * (cast_expression "(undefined4 *)(puVar5 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xfc)" ( (binary_expression "puVar5 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xbc)" * (cast_expression "(undefined4 *)(puVar5 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xbc)" ( (binary_expression "puVar5 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = (*pcVar30)(3,pbVar13,puVar22);" (assignment_expression "iVar25 = (*pcVar30)(3,pbVar13,puVar22)" identifier = (call_expression "(*pcVar30)(3,pbVar13,puVar22)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(3,pbVar13,puVar22)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar26 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar25) {\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar25)" ( (binary_expression "-1 < iVar25" number_literal < identifier) )) (compound_statement "{\n        piVar7 = (int *)0x0;\n        *(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;\n        pbVar14 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);\n        *(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);\n        *(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);\n        *(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }\n        pbVar17 = *(byte **)(puVar5 + -0xe8);\n        pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);\n        if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar17 = pbVar14;\n        iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);\n        iVar25 = *(int *)(puVar5 + -0x110);\n        if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }\n        (**(code **)(iVar12 + -0x7d68))(pbVar14);\n        pcVar24 = *(code **)(puVar5 + -0x110);\n        pbVar13 = pbVar17;\n        if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;\n        pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1;" (assignment_expression "*(int *)(puVar5 + -0xe0) = iVar12 + iVar10 + -1" (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar12 + iVar10 + -1" (binary_expression "iVar12 + iVar10" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar14 = (byte *)0xffffff9c;" (assignment_expression "pbVar14 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar5 + -0xec) = *(undefined4 *)(puVar5 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar5 + -0xec)" * (cast_expression "(undefined4 *)(puVar5 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xec)" ( (binary_expression "puVar5 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xd0)" * (cast_expression "(undefined4 *)(puVar5 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd0)" ( (binary_expression "puVar5 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar5 + -0xe4) = *(undefined4 *)(puVar5 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar5 + -0xe4)" * (cast_expression "(undefined4 *)(puVar5 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe4)" ( (binary_expression "puVar5 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xc0)" * (cast_expression "(undefined4 *)(puVar5 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xc0)" ( (binary_expression "puVar5 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar5 + -0xdc) = *(undefined4 *)(puVar5 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar5 + -0xdc)" * (cast_expression "(undefined4 *)(puVar5 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xdc)" ( (binary_expression "puVar5 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xbc)" * (cast_expression "(undefined4 *)(puVar5 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xbc)" ( (binary_expression "puVar5 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar5 + -0xe8) = *(int *)(iVar26 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar5 + -0xe8)" * (cast_expression "(int *)(puVar5 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe8)" ( (binary_expression "puVar5 + -0xe8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar26 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(iVar26 + -0x7fc8)" * (cast_expression "(int *)(iVar26 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -0x7fc8)" ( (binary_expression "iVar26 + -0x7fc8" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0002ce58:\n        if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))) {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4)))" ( (binary_expression "(*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)) &&\n           (iVar29 == *(int *)(puVar5 + -0xe4))" (parenthesized_expression "(*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec))" ( (binary_expression "*(int *)(puVar5 + -0x104) == *(int *)(puVar5 + -0xec)" (pointer_expression "*(int *)(puVar5 + -0x104)" * (cast_expression "(int *)(puVar5 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar5 + -0xec)" * (cast_expression "(int *)(puVar5 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xec)" ( (binary_expression "puVar5 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar29 == *(int *)(puVar5 + -0xe4))" ( (binary_expression "iVar29 == *(int *)(puVar5 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar5 + -0xe4)" * (cast_expression "(int *)(puVar5 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe4)" ( (binary_expression "puVar5 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n          if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar30 = *(code **)(iVar26 + -0x7cac);" (assignment_expression "pcVar30 = *(code **)(iVar26 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar26 + -0x7cac)" * (cast_expression "(code **)(iVar26 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7cac)" ( (binary_expression "iVar26 + -0x7cac" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)) {\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc))" ( (binary_expression "*(int *)(puVar5 + -0xfc) == *(int *)(puVar5 + -0xdc)" (pointer_expression "*(int *)(puVar5 + -0xfc)" * (cast_expression "(int *)(puVar5 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xfc)" ( (binary_expression "puVar5 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar5 + -0xdc)" * (cast_expression "(int *)(puVar5 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xdc)" ( (binary_expression "puVar5 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }\n            iVar12 = *(int *)(puVar5 + -0xe0);\n            if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }\n            pbVar13 = *(byte **)(puVar5 + -0xe0);\n            pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );\n            (**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n            if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }\n            iVar12 = *(int *)(puVar5 + -0x100);\n            if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }\n            *(int *)(puVar5 + -0x108) = iVar12;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar7 != (int *)0x0) {\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);\n              iVar26 = *(int *)(puVar5 + -0x110);\n              if (iVar12 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7);" (assignment_expression "iVar12 = (**(code **)(iVar26 + -0x7d6c))(piVar7)" identifier = (call_expression "(**(code **)(iVar26 + -0x7d6c))(piVar7)" (parenthesized_expression "(**(code **)(iVar26 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar26 + -0x7d6c)" * (pointer_expression "*(code **)(iVar26 + -0x7d6c)" * (cast_expression "(code **)(iVar26 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7d6c)" ( (binary_expression "iVar26 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar26 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar12 = *(int *)(puVar5 + -0xe0);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1) {\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar5 + -0xe0) ==\n                *(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1" (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8) + -1" (binary_expression "*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)" (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar5 + -0xf8)" * (cast_expression "(int *)(puVar5 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);\n              *(undefined1 *)(iVar12 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1);" (assignment_expression "*(undefined1 **)(puVar5 + -0xe0) = (undefined1 *)(iVar12 + -1)" (pointer_expression "*(undefined1 **)(puVar5 + -0xe0)" * (cast_expression "(undefined1 **)(puVar5 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar12 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -1)" ( (binary_expression "iVar12 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar12 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar12 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar12 + -1)" * (cast_expression "(undefined1 *)(iVar12 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -1)" ( (binary_expression "iVar12 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar13 = *(byte **)(puVar5 + -0xe0);" (assignment_expression "pbVar13 = *(byte **)(puVar5 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar5 + -0xe0)" * (cast_expression "(byte **)(puVar5 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              );" (assignment_expression "pbVar18 = (byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              )" identifier = (cast_expression "(byte *)((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13\n                              )" ( (binary_expression "(*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)) - (int)pbVar13" (parenthesized_expression "(*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8))" ( (binary_expression "*(int *)(puVar5 + -0x108) + *(int *)(puVar5 + -0xf8)" (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar5 + -0xf8)" * (cast_expression "(int *)(puVar5 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18);" (call_expression "(**(code **)(iVar26 + -0x7bd0))(*(int *)(puVar5 + -0x108),pbVar13,pbVar18)" (parenthesized_expression "(**(code **)(iVar26 + -0x7bd0))" ( (pointer_expression "**(code **)(iVar26 + -0x7bd0)" * (pointer_expression "*(code **)(iVar26 + -0x7bd0)" * (cast_expression "(code **)(iVar26 + -0x7bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7bd0)" ( (binary_expression "iVar26 + -0x7bd0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar5 + -0x108),pbVar13,pbVar18)" ( (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + 4) == 0) {\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }" if (parenthesized_expression "(*(int *)(puVar5 + 4) == 0)" ( (binary_expression "*(int *)(puVar5 + 4) == 0" (pointer_expression "*(int *)(puVar5 + 4)" * (cast_expression "(int *)(puVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar13 = pbVar18;\n              uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));\n              pcVar24 = *(code **)(puVar5 + -0x110);\n              *(undefined4 *)(puVar5 + -0x100) = uVar32;\n            }" { (expression_statement "pbVar13 = pbVar18;" (assignment_expression "pbVar13 = pbVar18" identifier = identifier) ;) (expression_statement "uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108));" (assignment_expression "uVar32 = (**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -0x108))" identifier = (call_expression "(**(code **)(pcVar24 + -0x7c78))(*(undefined4 *)(puVar5 + -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 *)(puVar5 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x100) = uVar32;" (assignment_expression "*(undefined4 *)(puVar5 + -0x100) = uVar32" (pointer_expression "*(undefined4 *)(puVar5 + -0x100)" * (cast_expression "(undefined4 *)(puVar5 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = *(int *)(puVar5 + -0x100);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x100)" identifier = (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + -0x100) == 0) {\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar5 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar5 + -0x100) == 0" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar12 = *(int *)(puVar5 + -0x108);\n            }" { (expression_statement "iVar12 = *(int *)(puVar5 + -0x108);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x108)" identifier = (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar5 + -0x108) = iVar12;" (assignment_expression "*(int *)(puVar5 + -0x108) = iVar12" (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar30 = *(code **)(iVar26 + -0x7cac);\n        }" { (expression_statement "pcVar30 = *(code **)(iVar26 + -0x7cac);" (assignment_expression "pcVar30 = *(code **)(iVar26 + -0x7cac)" identifier = (pointer_expression "*(code **)(iVar26 + -0x7cac)" * (cast_expression "(code **)(iVar26 + -0x7cac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7cac)" ( (binary_expression "iVar26 + -0x7cac" identifier + number_literal) ))))) ;) })))) (expression_statement "pbVar17 = *(byte **)(puVar5 + -0xe8);" (assignment_expression "pbVar17 = *(byte **)(puVar5 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar5 + -0xe8)" * (cast_expression "(byte **)(puVar5 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xe8)" ( (binary_expression "puVar5 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0);" (assignment_expression "pbVar14 = (byte *)(*pcVar30)(pbVar14,pbVar17,0)" identifier = (cast_expression "(byte *)(*pcVar30)(pbVar14,pbVar17,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar30)(pbVar14,pbVar17,0)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pbVar14,pbVar17,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar14 < 0) {\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar14 < 0)" ( (binary_expression "(int)pbVar14 < 0" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n          pcVar24 = *(code **)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }\n          pcVar30 = *(code **)(pcVar24 + -0x7bd8);\n          pbVar13 = pbVar17;\n          if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar5 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar30 = *(code **)(pcVar24 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar30)(piVar7);\n            pcVar24 = *(code **)(puVar5 + -0x110);\n          }" { (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7d6c);" (assignment_expression "pcVar30 = *(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            (*pcVar30)(piVar7);" statement_identifier : (expression_statement "(*pcVar30)(piVar7);" (call_expression "(*pcVar30)(piVar7)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(piVar7)" ( identifier ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar30 = *(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 "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (if_statement "if (*(int *)(puVar5 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar5 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar5 + -0x100) == 0" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar17 = pbVar14;" (assignment_expression "pbVar17 = pbVar14" identifier = identifier) ;) (expression_statement "iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22);" (assignment_expression "iVar12 = (**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22)" identifier = (call_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))(3,pbVar14,puVar22)" (parenthesized_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar5 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar5 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar5 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar14,puVar22)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }\n        else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);\n          iVar25 = *(int *)(puVar5 + -0x110);\n          if (iVar12 == 0) goto LAB_0002cec4;\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\nLAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;\n        }" { (if_statement "if (piVar7 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);\n            *(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);\n            *(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);\n            *(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);\n            piVar7 = (int *)(*pcVar30)(pbVar14);\n            pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();\n            iVar12 = *(int *)(puVar5 + -0x110);\n            if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar30 = *(code **)(iVar25 + -0x7d1c);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar25 + -0x7d1c);" (assignment_expression "pcVar30 = *(code **)(iVar25 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar25 + -0x7d1c)" * (cast_expression "(code **)(iVar25 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar25 + -0x7d1c)" ( (binary_expression "iVar25 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar5 + -0xf0) = *(undefined4 *)(puVar5 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar5 + -0xf0)" * (cast_expression "(undefined4 *)(puVar5 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf0)" ( (binary_expression "puVar5 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xd0)" * (cast_expression "(undefined4 *)(puVar5 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd0)" ( (binary_expression "puVar5 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar5 + -0xd8) = *(undefined4 *)(puVar5 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar5 + -0xd8)" * (cast_expression "(undefined4 *)(puVar5 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd8)" ( (binary_expression "puVar5 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xc0)" * (cast_expression "(undefined4 *)(puVar5 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xc0)" ( (binary_expression "puVar5 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar5 + -0xd4) = *(undefined4 *)(puVar5 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar5 + -0xd4)" * (cast_expression "(undefined4 *)(puVar5 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd4)" ( (binary_expression "puVar5 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xbc)" * (cast_expression "(undefined4 *)(puVar5 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xbc)" ( (binary_expression "puVar5 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar7 = (int *)(*pcVar30)(pbVar14);" (assignment_expression "piVar7 = (int *)(*pcVar30)(pbVar14)" identifier = (cast_expression "(int *)(*pcVar30)(pbVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar30)(pbVar14)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(pbVar14)" ( identifier ))))) ;) (expression_statement "pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar20 = (byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar5 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (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              pcVar30 = *(code **)(iVar12 + -0x7d38);\nLAB_0002cf18:\n              pbVar20[0] = 0;\n              pbVar20[1] = 0;\n              pbVar20[2] = 0;\n              pbVar20[3] = 0;\n              piVar9 = (int *)(*pcVar30)(piVar7);\n              iVar12 = *(int *)(puVar5 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 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              pcVar30 = *(code **)(iVar12 + -0x7d38);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d38);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d38)" * (cast_expression "(code **)(iVar12 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d38)" ( (binary_expression "iVar12 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar20[0] = 0;" statement_identifier : (expression_statement "pbVar20[0] = 0;" (assignment_expression "pbVar20[0] = 0" (subscript_expression "pbVar20[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar20[1] = 0;" (assignment_expression "pbVar20[1] = 0" (subscript_expression "pbVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[2] = 0;" (assignment_expression "pbVar20[2] = 0" (subscript_expression "pbVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[3] = 0;" (assignment_expression "pbVar20[3] = 0" (subscript_expression "pbVar20[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9 = (int *)(*pcVar30)(piVar7);" (assignment_expression "piVar9 = (int *)(*pcVar30)(piVar7)" identifier = (cast_expression "(int *)(*pcVar30)(piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar30)(piVar7)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(piVar7)" ( identifier ))))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 == (int *)0x0) {\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar18 = *(byte **)pbVar20;\n                pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar18 = *(byte **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d6c);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d6c)" * (cast_expression "(code **)(iVar12 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d6c)" ( (binary_expression "iVar12 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -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                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar12 + -0x7d90))(piVar7);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);\n                  iVar12 = *(int *)(puVar5 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar18 = *(byte **)pbVar20;\n                  pcVar30 = *(code **)(iVar12 + -0x7d6c);\n                  if (pbVar18 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar18 = (byte *)0x2;\n                    pbVar20[0] = 0;\n                    pbVar20[1] = 0;\n                    pbVar20[2] = 0;\n                    pbVar20[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 "pbVar20[0] = 0;" (assignment_expression "pbVar20[0] = 0" (subscript_expression "pbVar20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[1] = 0;" (assignment_expression "pbVar20[1] = 0" (subscript_expression "pbVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[2] = 0;" (assignment_expression "pbVar20[2] = 0" (subscript_expression "pbVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[3] = 2;" (assignment_expression "pbVar20[3] = 2" (subscript_expression "pbVar20[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar12 + -0x7d90))(piVar7);" (call_expression "(**(code **)(iVar12 + -0x7d90))(piVar7)" (parenthesized_expression "(**(code **)(iVar12 + -0x7d90))" ( (pointer_expression "**(code **)(iVar12 + -0x7d90)" * (pointer_expression "*(code **)(iVar12 + -0x7d90)" * (cast_expression "(code **)(iVar12 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d90)" ( (binary_expression "iVar12 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7);" (assignment_expression "piVar9 = (int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))(piVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar5 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar5 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar5 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (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)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d6c);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d6c)" * (cast_expression "(code **)(iVar12 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d6c)" ( (binary_expression "iVar12 + -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)piVar9 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar9 + 5) != '\0')" ( (binary_expression "*(char *)(piVar9 + 5) != '\0'" (pointer_expression "*(char *)(piVar9 + 5)" * (cast_expression "(char *)(piVar9 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 5)" ( (binary_expression "piVar9 + 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 "iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7);" (assignment_expression "iVar12 = (**(code **)(iVar25 + -0x7d6c))(piVar7)" identifier = (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar7)" (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 "(piVar7)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar20 = (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 "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar18 = *(byte **)pbVar20;" statement_identifier : (expression_statement "pbVar18 = *(byte **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n          iVar12 = *(int *)(puVar5 + -0x110);\n          pbVar18 = *(byte **)pbVar20;\n          if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }\n        }" { (expression_statement "pbVar20 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar20 = (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 "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = *(byte **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar12 + -0x7d6c))(piVar7);\n            iVar12 = *(int *)(puVar5 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar12 + -0x7d6c))(piVar7);" (call_expression "(**(code **)(iVar12 + -0x7d6c))(piVar7)" (parenthesized_expression "(**(code **)(iVar12 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar12 + -0x7d6c)" * (pointer_expression "*(code **)(iVar12 + -0x7d6c)" * (cast_expression "(code **)(iVar12 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d6c)" ( (binary_expression "iVar12 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar7)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar12 + -0x7d68))(pbVar14);" (call_expression "(**(code **)(iVar12 + -0x7d68))(pbVar14)" (parenthesized_expression "(**(code **)(iVar12 + -0x7d68))" ( (pointer_expression "**(code **)(iVar12 + -0x7d68)" * (pointer_expression "*(code **)(iVar12 + -0x7d68)" * (cast_expression "(code **)(iVar12 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d68)" ( (binary_expression "iVar12 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar14)" ( identifier ))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (if_statement "if (*(int *)(puVar5 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar5 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar5 + -0x100) != 0" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar30 = *(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    pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))();" (assignment_expression "pbVar20 = (byte *)(**(code **)(iVar26 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar26 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar26 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar26 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar26 + -0x7cc8)" * (pointer_expression "*(code **)(iVar26 + -0x7cc8)" * (cast_expression "(code **)(iVar26 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar26 + -0x7cc8)" ( (binary_expression "iVar26 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "pbVar18 = *(byte **)pbVar20;" (assignment_expression "pbVar18 = *(byte **)pbVar20" identifier = (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + -0x100) == 0) {\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar5 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar5 + -0x100) == 0" (pointer_expression "*(int *)(puVar5 + -0x100)" * (cast_expression "(int *)(puVar5 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x100)" ( (binary_expression "puVar5 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar30 = *(code **)(pcVar24 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n      pcVar24 = *(code **)(puVar5 + -0x110);\n    }" { (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7bd8);" (assignment_expression "pcVar30 = *(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      (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));" statement_identifier : (expression_statement "(*pcVar30)(*(undefined4 *)(puVar5 + -0x108));" (call_expression "(*pcVar30)(*(undefined4 *)(puVar5 + -0x108))" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(*(undefined4 *)(puVar5 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar24 = *(code **)(puVar5 + -0x110);" (assignment_expression "pcVar24 = *(code **)(puVar5 + -0x110)" identifier = (pointer_expression "*(code **)(puVar5 + -0x110)" * (cast_expression "(code **)(puVar5 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar20 = pbVar18;" statement_identifier : (expression_statement "*(byte **)pbVar20 = pbVar18;" (assignment_expression "*(byte **)pbVar20 = pbVar18" (pointer_expression "*(byte **)pbVar20" * (cast_expression "(byte **)pbVar20" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar5 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar9 = *(int **)(puVar5 + -0xf4);" statement_identifier : (expression_statement "piVar9 = *(int **)(puVar5 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar5 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar5 + -0xf4)" * (cast_expression "(int **)(puVar5 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xf4)" ( (binary_expression "puVar5 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  iVar12 = *(int *)(puVar5 + -0x2c);" statement_identifier : (expression_statement "iVar12 = *(int *)(puVar5 + -0x2c);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar5 + -0x2c)" * (cast_expression "(int *)(puVar5 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x2c)" ( (binary_expression "puVar5 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar12 != *piVar9) {\n    pcVar30 = *(code **)(pcVar24 + -0x7c10);\n    uVar32 = 0x2d36c;\n    (*pcVar30)();\n    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;\n    *(undefined4 *)(puVar5 + -300) = uVar32;\n    *(byte **)(puVar5 + -0x130) = pbVar20;\n    *(int **)(puVar5 + -0x134) = piVar7;\n    *(byte **)(puVar5 + -0x138) = pbVar18;\n    if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }\n    return iVar12;\n  }" if (parenthesized_expression "(iVar12 != *piVar9)" ( (binary_expression "iVar12 != *piVar9" identifier != (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n    pcVar30 = *(code **)(pcVar24 + -0x7c10);\n    uVar32 = 0x2d36c;\n    (*pcVar30)();\n    *(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;\n    *(undefined4 *)(puVar5 + -300) = uVar32;\n    *(byte **)(puVar5 + -0x130) = pbVar20;\n    *(int **)(puVar5 + -0x134) = piVar7;\n    *(byte **)(puVar5 + -0x138) = pbVar18;\n    if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }\n    return iVar12;\n  }" { (expression_statement "pcVar30 = *(code **)(pcVar24 + -0x7c10);" (assignment_expression "pcVar30 = *(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 "uVar32 = 0x2d36c;" (assignment_expression "uVar32 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar30)();" (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70;" (assignment_expression "*(code **)(puVar5 + -0x140) = pcVar30 + 0x23e70" (pointer_expression "*(code **)(puVar5 + -0x140)" * (cast_expression "(code **)(puVar5 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x140)" ( (binary_expression "puVar5 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar30 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + -300) = uVar32;" (assignment_expression "*(undefined4 *)(puVar5 + -300) = uVar32" (pointer_expression "*(undefined4 *)(puVar5 + -300)" * (cast_expression "(undefined4 *)(puVar5 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -300)" ( (binary_expression "puVar5 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x130) = pbVar20;" (assignment_expression "*(byte **)(puVar5 + -0x130) = pbVar20" (pointer_expression "*(byte **)(puVar5 + -0x130)" * (cast_expression "(byte **)(puVar5 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x130)" ( (binary_expression "puVar5 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar5 + -0x134) = piVar7;" (assignment_expression "*(int **)(puVar5 + -0x134) = piVar7" (pointer_expression "*(int **)(puVar5 + -0x134)" * (cast_expression "(int **)(puVar5 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x134)" ( (binary_expression "puVar5 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar5 + -0x138) = pbVar18;" (assignment_expression "*(byte **)(puVar5 + -0x138) = pbVar18" (pointer_expression "*(byte **)(puVar5 + -0x138)" * (cast_expression "(byte **)(puVar5 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x138)" ( (binary_expression "puVar5 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar12 == 0) {\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }\n    else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar12 = -1;\n      puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();\n      *puVar6 = 0x7a;\n    }" { (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar30 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar30 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar30 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar30 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar30 + 0x1c1a8)" * (cast_expression "(code **)(pcVar30 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1c1a8)" ( (binary_expression "pcVar30 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0x7a;" (assignment_expression "*puVar6 = 0x7a" (pointer_expression "*puVar6" * identifier) = number_literal) ;) }) (else_clause "else if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }" else (if_statement "if (iVar12 == 10) {\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }" if (parenthesized_expression "(iVar12 == 10)" ( (binary_expression "iVar12 == 10" identifier == number_literal) )) (compound_statement "{\n      uVar32 = *(undefined4 *)pbVar13;\n      iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);\n      if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }\n    }" { (expression_statement "uVar32 = *(undefined4 *)pbVar13;" (assignment_expression "uVar32 = *(undefined4 *)pbVar13" identifier = (pointer_expression "*(undefined4 *)pbVar13" * (cast_expression "(undefined4 *)pbVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar25 = (**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar30 + 0x1c2c8))(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar30 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar30 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar30 + 0x1c2c8)" * (cast_expression "(code **)(pcVar30 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar30 + 0x1c2c8)" ( (binary_expression "pcVar30 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar32,*(int *)(pcVar30 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar30 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar30 + 0x1bea8)" * (cast_expression "(int *)(pcVar30 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar30 + 0x1bea8)" ( (binary_expression "pcVar30 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar25 == 0) {\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar12 = -1;\n        (**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);\n        pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);\n        pbVar13[0] = 0;\n        pbVar13[1] = 0;\n        pbVar13[2] = 0;\n        pbVar13[3] = 0;\n        puVar6 = (undefined4 *)(*pcVar30)();\n        *puVar6 = 0x3d;\n      }" { (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32);" (call_expression "(**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))(uVar32)" (parenthesized_expression "(**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar5 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar5 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar5 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar5 + -0x140)" * (cast_expression "(int *)(puVar5 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x140)" ( (binary_expression "puVar5 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar32)" ( identifier ))) ;) (expression_statement "pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8);" (assignment_expression "pcVar30 = *(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar5 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar5 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar5 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar5 + -0x140)" * (cast_expression "(int *)(puVar5 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x140)" ( (binary_expression "puVar5 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar13[0] = 0;" (assignment_expression "pbVar13[0] = 0" (subscript_expression "pbVar13[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar13[1] = 0;" (assignment_expression "pbVar13[1] = 0" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar13[2] = 0;" (assignment_expression "pbVar13[2] = 0" (subscript_expression "pbVar13[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar13[3] = 0;" (assignment_expression "pbVar13[3] = 0" (subscript_expression "pbVar13[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)(*pcVar30)();" (assignment_expression "puVar6 = (undefined4 *)(*pcVar30)()" identifier = (cast_expression "(undefined4 *)(*pcVar30)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar30)()" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0x3d;" (assignment_expression "*puVar6 = 0x3d" (pointer_expression "*puVar6" * identifier) = number_literal) ;) })) })))) (return_statement "return iVar12;" return identifier ;) })) (return_statement "return *(int *)(puVar5 + -0x108);" return (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar30 = *(code **)(iVar12 + -0x7d38);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d38);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d38)" * (cast_expression "(code **)(iVar12 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d38)" ( (binary_expression "iVar12 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar9[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar9[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar9[5] & 0xffff0000U)" ( (binary_expression "piVar9[5] & 0xffff0000U" (subscript_expression "piVar9[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar30 = *(code **)(iVar12 + -0x7c30);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7c30);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7c30)" * (cast_expression "(code **)(iVar12 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7c30)" ( (binary_expression "iVar12 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }\n    pcVar30 = *(code **)(iVar12 + -0x7d38);\n    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }\n    pcVar30 = *(code **)(iVar12 + -0x7d38);\n    if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);\n  }" { (if_statement "if (*piVar9 == iVar29) {\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }" if (parenthesized_expression "(*piVar9 == iVar29)" ( (binary_expression "*piVar9 == iVar29" (pointer_expression "*piVar9" * identifier) == identifier) )) (compound_statement "{\n      iVar25 = *(int *)(puVar5 + -0x104);\n      if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar25 = *(int *)(puVar5 + -0x104);" (assignment_expression "iVar25 = *(int *)(puVar5 + -0x104)" identifier = (pointer_expression "*(int *)(puVar5 + -0x104)" * (cast_expression "(int *)(puVar5 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar9[1] == *(int *)(puVar5 + -0xfc)) {\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar9[1] == *(int *)(puVar5 + -0xfc))" ( (binary_expression "piVar9[1] == *(int *)(puVar5 + -0xfc)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar5 + -0xfc)" * (cast_expression "(int *)(puVar5 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xfc)" ( (binary_expression "puVar5 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar30 = *(code **)(iVar12 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7c30);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7c30)" * (cast_expression "(code **)(iVar12 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7c30)" ( (binary_expression "iVar12 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }" else (compound_statement "{\n      iVar25 = *(int *)(puVar5 + -0x104);\n    }" { (expression_statement "iVar25 = *(int *)(puVar5 + -0x104);" (assignment_expression "iVar25 = *(int *)(puVar5 + -0x104)" identifier = (pointer_expression "*(int *)(puVar5 + -0x104)" * (cast_expression "(int *)(puVar5 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d38);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d38)" * (cast_expression "(code **)(iVar12 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d38)" ( (binary_expression "iVar12 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == *(int *)(puVar5 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar25 == *(int *)(puVar5 + -0xf0))" ( (binary_expression "iVar25 == *(int *)(puVar5 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar5 + -0xf0)" * (cast_expression "(int *)(puVar5 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf0)" ( (binary_expression "puVar5 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar30 = *(code **)(iVar12 + -0x7c30);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7c30);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7c30)" * (cast_expression "(code **)(iVar12 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7c30)" ( (binary_expression "iVar12 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar13 = (byte *)((int)piVar9 + 0x13);" statement_identifier : (expression_statement "pbVar13 = (byte *)((int)piVar9 + 0x13);" (assignment_expression "pbVar13 = (byte *)((int)piVar9 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar9 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar5 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar5 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar5 + -0x118)" * (cast_expression "(undefined4 *)(puVar5 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x118)" ( (binary_expression "puVar5 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar17 = pbVar14;" (assignment_expression "pbVar17 = pbVar14" identifier = identifier) ;) (expression_statement "iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22);" (assignment_expression "iVar25 = (*pcVar30)(3,pbVar14,pbVar13,puVar22)" identifier = (call_expression "(*pcVar30)(3,pbVar14,pbVar13,puVar22)" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(3,pbVar14,pbVar13,puVar22)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d38);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d38)" * (cast_expression "(code **)(iVar12 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d38)" ( (binary_expression "iVar12 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)) ||\n     (*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29))" ( (binary_expression "(((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))) ||\n      (*(int *)(puVar5 + -0xc0) != iVar29)" (parenthesized_expression "(((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104)))" ( (binary_expression "((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))" (parenthesized_expression "((*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar5 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar5 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar5 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar5 + -0xb8)" * (cast_expression "(uint *)(puVar5 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xb8)" ( (binary_expression "puVar5 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104))" ( (binary_expression "*(int *)(puVar5 + -0xd0) != *(int *)(puVar5 + -0x104)" (pointer_expression "*(int *)(puVar5 + -0xd0)" * (cast_expression "(int *)(puVar5 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd0)" ( (binary_expression "puVar5 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar5 + -0x104)" * (cast_expression "(int *)(puVar5 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar5 + -0xc0) != iVar29)" ( (binary_expression "*(int *)(puVar5 + -0xc0) != iVar29" (pointer_expression "*(int *)(puVar5 + -0xc0)" * (cast_expression "(int *)(puVar5 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xc0)" ( (binary_expression "puVar5 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc))" ( (binary_expression "*(int *)(puVar5 + -0xbc) != *(int *)(puVar5 + -0xfc)" (pointer_expression "*(int *)(puVar5 + -0xbc)" * (cast_expression "(int *)(puVar5 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xbc)" ( (binary_expression "puVar5 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar5 + -0xfc)" * (cast_expression "(int *)(puVar5 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xfc)" ( (binary_expression "puVar5 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108));" (assignment_expression "pbVar28 = (byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108))" ( (binary_expression "*(int *)(puVar5 + -0xe0) - *(int *)(puVar5 + -0x108)" (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13);" (assignment_expression "pbVar18 = (byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13)" identifier = (cast_expression "(byte *)(**(code **)(iVar12 + -0x7ca4))(pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar12 + -0x7ca4))(pbVar13)" (parenthesized_expression "(**(code **)(iVar12 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar12 + -0x7ca4)" * (pointer_expression "*(code **)(iVar12 + -0x7ca4)" * (cast_expression "(code **)(iVar12 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7ca4)" ( (binary_expression "iVar12 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar13)" ( identifier ))))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar28 <= pbVar18) {\n    pbVar21 = *(byte **)(puVar5 + -0xf8);\n    if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar11 = pbVar21;\n    if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }\n    pbVar19 = pbVar11 + (int)pbVar21;\n    pcVar30 = *(code **)(iVar12 + -0x7c78);\n    if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar5 + -0x104) = pbVar11;\n    pbVar17 = pbVar19;\n    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n    iVar12 = *(int *)(puVar5 + -0x110);\n    if (iVar25 == 0) goto LAB_0002d338;\n    uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);\n    iVar12 = *(int *)(puVar5 + -0x110);\n    *(byte **)(puVar5 + -0xf8) = pbVar19;\n    *(undefined4 *)(puVar5 + -0xe0) = uVar32;\n    *(int *)(puVar5 + -0x108) = iVar25;\n  }" if (parenthesized_expression "(pbVar28 <= pbVar18)" ( (binary_expression "pbVar28 <= pbVar18" identifier <= identifier) )) (compound_statement "{\n    pbVar21 = *(byte **)(puVar5 + -0xf8);\n    if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar11 = pbVar21;\n    if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }\n    pbVar19 = pbVar11 + (int)pbVar21;\n    pcVar30 = *(code **)(iVar12 + -0x7c78);\n    if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar5 + -0x104) = pbVar11;\n    pbVar17 = pbVar19;\n    iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));\n    iVar12 = *(int *)(puVar5 + -0x110);\n    if (iVar25 == 0) goto LAB_0002d338;\n    uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);\n    iVar12 = *(int *)(puVar5 + -0x110);\n    *(byte **)(puVar5 + -0xf8) = pbVar19;\n    *(undefined4 *)(puVar5 + -0xe0) = uVar32;\n    *(int *)(puVar5 + -0x108) = iVar25;\n  }" { (expression_statement "pbVar21 = *(byte **)(puVar5 + -0xf8);" (assignment_expression "pbVar21 = *(byte **)(puVar5 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar5 + -0xf8)" * (cast_expression "(byte **)(puVar5 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar5 + 4) != 0) {\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar5 + 4) != 0)" ( (binary_expression "*(int *)(puVar5 + 4) != 0" (pointer_expression "*(int *)(puVar5 + 4)" * (cast_expression "(int *)(puVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar18 = (byte *)0x22;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[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 "pbVar20[0] = 0;" (assignment_expression "pbVar20[0] = 0" (subscript_expression "pbVar20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[1] = 0;" (assignment_expression "pbVar20[1] = 0" (subscript_expression "pbVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[2] = 0;" (assignment_expression "pbVar20[2] = 0" (subscript_expression "pbVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[3] = 0x22;" (assignment_expression "pbVar20[3] = 0x22" (subscript_expression "pbVar20[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar11 = pbVar21;" (assignment_expression "pbVar11 = pbVar21" identifier = identifier) ;) (if_statement "if (pbVar21 < pbVar18) {\n      pbVar11 = pbVar18;\n    }" if (parenthesized_expression "(pbVar21 < pbVar18)" ( (binary_expression "pbVar21 < pbVar18" identifier < identifier) )) (compound_statement "{\n      pbVar11 = pbVar18;\n    }" { (expression_statement "pbVar11 = pbVar18;" (assignment_expression "pbVar11 = pbVar18" identifier = identifier) ;) })) (expression_statement "pbVar19 = pbVar11 + (int)pbVar21;" (assignment_expression "pbVar19 = pbVar11 + (int)pbVar21" identifier = (binary_expression "pbVar11 + (int)pbVar21" identifier + (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7c78);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7c78)" * (cast_expression "(code **)(iVar12 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7c78)" ( (binary_expression "iVar12 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar19 < pbVar21) {\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar19 < pbVar21)" ( (binary_expression "pbVar19 < pbVar21" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar18 = (byte *)0xc;\n      pbVar20[0] = 0;\n      pbVar20[1] = 0;\n      pbVar20[2] = 0;\n      pbVar20[3] = 0xc;\nLAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -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 "pbVar20[0] = 0;" (assignment_expression "pbVar20[0] = 0" (subscript_expression "pbVar20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[1] = 0;" (assignment_expression "pbVar20[1] = 0" (subscript_expression "pbVar20[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[2] = 0;" (assignment_expression "pbVar20[2] = 0" (subscript_expression "pbVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar20[3] = 0xc;" (assignment_expression "pbVar20[3] = 0xc" (subscript_expression "pbVar20[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar30 = *(code **)(iVar12 + -0x7d6c);" statement_identifier : (expression_statement "pcVar30 = *(code **)(iVar12 + -0x7d6c);" (assignment_expression "pcVar30 = *(code **)(iVar12 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar12 + -0x7d6c)" * (cast_expression "(code **)(iVar12 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7d6c)" ( (binary_expression "iVar12 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar5 + -0x104) = pbVar11;" (assignment_expression "*(byte **)(puVar5 + -0x104) = pbVar11" (pointer_expression "*(byte **)(puVar5 + -0x104)" * (cast_expression "(byte **)(puVar5 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar17 = pbVar19;" (assignment_expression "pbVar17 = pbVar19" identifier = identifier) ;) (expression_statement "iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108));" (assignment_expression "iVar25 = (*pcVar30)(*(undefined4 *)(puVar5 + -0x108))" identifier = (call_expression "(*pcVar30)(*(undefined4 *)(puVar5 + -0x108))" (parenthesized_expression "(*pcVar30)" ( (pointer_expression "*pcVar30" * identifier) )) (argument_list "(*(undefined4 *)(puVar5 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0x108)" * (cast_expression "(undefined4 *)(puVar5 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28);" (assignment_expression "uVar32 = (**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28)" identifier = (call_expression "(**(code **)(iVar12 + -0x7be0))\n                       (pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28)" (parenthesized_expression "(**(code **)(iVar12 + -0x7be0))" ( (pointer_expression "**(code **)(iVar12 + -0x7be0)" * (pointer_expression "*(code **)(iVar12 + -0x7be0)" * (cast_expression "(code **)(iVar12 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7be0)" ( (binary_expression "iVar12 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar28 + iVar25 + *(int *)(puVar5 + -0x104),pbVar28 + iVar25,\n                        *(int *)(puVar5 + -0xf8) - (int)pbVar28)" ( (binary_expression "pbVar28 + iVar25 + *(int *)(puVar5 + -0x104)" (binary_expression "pbVar28 + iVar25" identifier + identifier) + (pointer_expression "*(int *)(puVar5 + -0x104)" * (cast_expression "(int *)(puVar5 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar28 + iVar25" identifier + identifier) , (binary_expression "*(int *)(puVar5 + -0xf8) - (int)pbVar28" (pointer_expression "*(int *)(puVar5 + -0xf8)" * (cast_expression "(int *)(puVar5 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar12 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar12 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar5 + -0xf8) = pbVar19;" (assignment_expression "*(byte **)(puVar5 + -0xf8) = pbVar19" (pointer_expression "*(byte **)(puVar5 + -0xf8)" * (cast_expression "(byte **)(puVar5 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0xf8)" ( (binary_expression "puVar5 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xe0) = uVar32;" (assignment_expression "*(undefined4 *)(puVar5 + -0xe0) = uVar32" (pointer_expression "*(undefined4 *)(puVar5 + -0xe0)" * (cast_expression "(undefined4 *)(puVar5 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar5 + -0x108) = iVar25;" (assignment_expression "*(int *)(puVar5 + -0x108) = iVar25" (pointer_expression "*(int *)(puVar5 + -0x108)" * (cast_expression "(int *)(puVar5 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x108)" ( (binary_expression "puVar5 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18);" (assignment_expression "iVar12 = (**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18)" identifier = (call_expression "(**(code **)(iVar12 + -0x7be0))(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18)" (parenthesized_expression "(**(code **)(iVar12 + -0x7be0))" ( (pointer_expression "**(code **)(iVar12 + -0x7be0)" * (pointer_expression "*(code **)(iVar12 + -0x7be0)" * (cast_expression "(code **)(iVar12 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + -0x7be0)" ( (binary_expression "iVar12 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar5 + -0xe0) - (int)pbVar18,pbVar13,pbVar18)" ( (binary_expression "*(int *)(puVar5 + -0xe0) - (int)pbVar18" (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar26 = *(int *)(puVar5 + -0x110);" (assignment_expression "iVar26 = *(int *)(puVar5 + -0x110)" identifier = (pointer_expression "*(int *)(puVar5 + -0x110)" * (cast_expression "(int *)(puVar5 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x110)" ( (binary_expression "puVar5 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = *(int *)(puVar5 + -0xd8);" (assignment_expression "iVar29 = *(int *)(puVar5 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar5 + -0xd8)" * (cast_expression "(int *)(puVar5 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd8)" ( (binary_expression "puVar5 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar5 + -0xe0) = iVar12 + -1;" (assignment_expression "*(int *)(puVar5 + -0xe0) = iVar12 + -1" (pointer_expression "*(int *)(puVar5 + -0xe0)" * (cast_expression "(int *)(puVar5 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xe0)" ( (binary_expression "puVar5 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar12 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar12 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar12 + -1)" * (cast_expression "(undefined1 *)(iVar12 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -1)" ( (binary_expression "iVar12 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar5 + -0xfc) = *(undefined4 *)(puVar5 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar5 + -0xfc)" * (cast_expression "(undefined4 *)(puVar5 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xfc)" ( (binary_expression "puVar5 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xd4)" * (cast_expression "(undefined4 *)(puVar5 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xd4)" ( (binary_expression "puVar5 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar5 + -0x104) = *(undefined4 *)(puVar5 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar5 + -0x104)" * (cast_expression "(undefined4 *)(puVar5 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x104)" ( (binary_expression "puVar5 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar5 + -0xf0)" * (cast_expression "(undefined4 *)(puVar5 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0xf0)" ( (binary_expression "puVar5 + -0xf0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002ce58;" goto statement_identifier ;) })))
(translation_unit "byte * FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}\n\n" (function_definition "byte * FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}" type_identifier (pointer_declarator "* FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" * (function_declarator "FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" identifier (parameter_list "(int param_1,byte *param_2,byte *param_3,byte *param_4)" ( (parameter_declaration "int param_1" primitive_type 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)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined1 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * 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 "int iVar24;" primitive_type 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 "int iVar28;" primitive_type identifier ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000495fc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000495fc" identifier = identifier) ;) (expression_statement "puVar21 = auStack_68;" (assignment_expression "puVar21 = auStack_68" identifier = identifier) ;) (expression_statement "pbVar19 = param_2 + 1;" (assignment_expression "pbVar19 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000495fc;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000495fc" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000495fc" * (cast_expression "(byte **)PTR___stack_chk_guard_000495fc" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar12 = param_2;" (assignment_expression "pbVar12 = param_2" identifier = identifier) ;) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" identifier = identifier) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0004953c)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0004953c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0004953c)" ( (pointer_expression "*(code *)PTR_strlen_0004953c" * (cast_expression "(code *)PTR_strlen_0004953c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar22 = PTR_DAT_00049208;" (assignment_expression "puVar22 = PTR_DAT_00049208" identifier = identifier) ;) (expression_statement "iVar11 = (int)(char)param_2[1];" (assignment_expression "iVar11 = (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 ])))) ;) (if_statement "if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" { (expression_statement "unaff_s5 = (undefined1 *)0x0;" (assignment_expression "unaff_s5 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s1 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(param_1 - 0x3fU < 2)" identifier = (call_expression "(uint)(param_1 - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 - 0x3fU < 2)" ( (binary_expression "param_1 - 0x3fU < 2" (binary_expression "param_1 - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "puVar3 = PTR_LAB_00049218 + 0x671c;" (assignment_expression "puVar3 = PTR_LAB_00049218 + 0x671c" identifier = (binary_expression "PTR_LAB_00049218 + 0x671c" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "puVar18 = auStack_68;" (assignment_expression "puVar18 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar19;" (assignment_expression "unaff_s6 = pbVar19" identifier = identifier) ;) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" statement_identifier : (do_statement "do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" do (compound_statement "{\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    }" { (expression_statement "puVar21 = puVar18;" (assignment_expression "puVar21 = puVar18" identifier = identifier) ;) (expression_statement "unaff_s3 = puVar22;" (assignment_expression "unaff_s3 = puVar22" identifier = identifier) ;) (if_statement "if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" if (parenthesized_expression "(iVar11 == 0x5b)" ( (binary_expression "iVar11 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }" { (if_statement "if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" if (parenthesized_expression "(*(int *)(puVar22 + -0x5830) == 0)" ( (binary_expression "*(int *)(puVar22 + -0x5830) == 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" * (cast_expression "(int *)(puVar22 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" { (expression_statement "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);" (assignment_expression "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3)" identifier = (call_expression "(*(code *)PTR_getenv_0004956c)(puVar3)" (parenthesized_expression "(*(code *)PTR_getenv_0004956c)" ( (pointer_expression "*(code *)PTR_getenv_0004956c" * (cast_expression "(code *)PTR_getenv_0004956c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier )))) ;) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar11 != 0) {\n            uVar31 = 1;\n          }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar31 = 1;\n          }" { (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar22 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(puVar22 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(puVar22 + -0x5830)" * (cast_expression "(undefined4 *)(puVar22 + -0x5830)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "bVar8 = pbVar19[1];" (assignment_expression "bVar8 = pbVar19[1]" identifier = (subscript_expression "pbVar19[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar19 + 1;" (assignment_expression "pbVar16 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" if (parenthesized_expression "((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))))" ( (binary_expression "(bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" (parenthesized_expression "(bVar8 == 0x21)" ( (binary_expression "bVar8 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))" ( (binary_expression "*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)" (binary_expression "*(int *)(puVar22 + -0x5830) < 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" * (cast_expression "(int *)(puVar22 + -0x5830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x5830)" ( (binary_expression "puVar22 + -0x5830" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar8 == 0x5e)" ( (binary_expression "bVar8 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" { (expression_statement "bVar8 = pbVar19[2];" (assignment_expression "bVar8 = pbVar19[2]" identifier = (subscript_expression "pbVar19[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar19 + 2;" (assignment_expression "pbVar16 = pbVar19 + 2" identifier = (binary_expression "pbVar19 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" if (parenthesized_expression "(bVar8 == 0x5d)" ( (binary_expression "bVar8 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" { (expression_statement "bVar8 = pbVar16[1];" (assignment_expression "bVar8 = pbVar16[1]" identifier = (subscript_expression "pbVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar12 = (byte *)0x5d;" (assignment_expression "pbVar12 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" while (parenthesized_expression "(pbVar19 = pbVar16 + 1, bVar8 != 0x5d)" ( (comma_expression "pbVar19 = pbVar16 + 1, bVar8 != 0x5d" (assignment_expression "pbVar19 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) , (binary_expression "bVar8 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" { (if_statement "if (bVar8 == 0) goto LAB_0002b7b4;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002b7b4;" goto statement_identifier ;)) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" identifier = identifier) ;) (expression_statement "bVar8 = *pbVar19;" (assignment_expression "bVar8 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) })) (expression_statement "iVar11 = (int)(char)pbVar16[1];" (assignment_expression "iVar11 = (int)(char)pbVar16[1]" identifier = (cast_expression "(int)(char)pbVar16[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar16[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar16[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" else (compound_statement "{\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" { (expression_statement "pbVar12 = &DAT_c0000601;" (assignment_expression "pbVar12 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar4 = iVar11 - 0x21U & 0xff;" (assignment_expression "uVar4 = iVar11 - 0x21U & 0xff" identifier = (binary_expression "iVar11 - 0x21U & 0xff" (binary_expression "iVar11 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar13 = (byte *)(uint)(uVar4 < 0x20);" (assignment_expression "pbVar13 = (byte *)(uint)(uVar4 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar4 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar4 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < 0x20)" ( (binary_expression "uVar4 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = 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 ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }" { (if_statement "if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" if (parenthesized_expression "((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0))" ( (binary_expression "(iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)" (parenthesized_expression "(iVar11 == 0x7c)" ( (binary_expression "iVar11 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" ( (binary_expression "unaff_s5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" { (expression_statement "pbVar16 = local_44;" (assignment_expression "pbVar16 = local_44" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar16 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "pbVar16 = pbVar19 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar19 + (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)(pbVar16 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + 7)" ( (binary_expression "pbVar16 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar19 + -(int)unaff_s6;" (assignment_expression "pbVar13 = pbVar19 + -(int)unaff_s6" identifier = (binary_expression "pbVar19 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar15 = pbVar19 + 1;" (assignment_expression "pbVar15 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + 7)" ( (binary_expression "pbVar16 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar26 = puVar21 + iVar24;" (assignment_expression "puVar26 = puVar21 + iVar24" identifier = (binary_expression "puVar21 + iVar24" identifier + identifier)) ;) (expression_statement "piVar6 = (int *)(puVar21 + iVar24 + 0x18);" (assignment_expression "piVar6 = (int *)(puVar21 + iVar24 + 0x18)" identifier = (cast_expression "(int *)(puVar21 + iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar24 + 0x18)" ( (binary_expression "puVar21 + iVar24 + 0x18" (binary_expression "puVar21 + iVar24" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);" (assignment_expression "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + iVar24 + 0x1c)" ( (binary_expression "puVar21 + iVar24 + 0x1c" (binary_expression "puVar21 + iVar24" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar15;" (assignment_expression "pbVar19 = pbVar15" identifier = identifier) ;) (expression_statement "puVar21 = puVar21 + iVar24;" (assignment_expression "puVar21 = puVar21 + iVar24" identifier = (binary_expression "puVar21 + iVar24" identifier + identifier)) ;) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" identifier = identifier) ;) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" identifier = identifier) ;) (if_statement "if (iVar11 == 0) break;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002b75c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];" statement_identifier : (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar4 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar4 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar4 & 0x1f)" number_literal >> (parenthesized_expression "(uVar4 & 0x1f)" ( (binary_expression "uVar4 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" { (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar11 != 0x28) goto joined_r0x0002b91c;" if (parenthesized_expression "(iVar11 != 0x28)" ( (binary_expression "iVar11 != 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 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar11 != 0x29) goto LAB_0002b918;" if (parenthesized_expression "(iVar11 != 0x29)" ( (binary_expression "iVar11 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_0002b918;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" if (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" ( (binary_expression "unaff_s5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" { (if_statement "if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(1 < param_1 - 0x3fU)" ( (binary_expression "1 < param_1 - 0x3fU" number_literal < (binary_expression "param_1 - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_44 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar19 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar19 + (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)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" if (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" { (expression_statement "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 + 7)" ( (binary_expression "local_44 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);" (assignment_expression "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" ( (pointer_expression "*(code *)PTR_mempcpy_000495e4" * (cast_expression "(code *)PTR_mempcpy_000495e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" ( (binary_expression "puVar21 + iVar11 + 0x1c" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar19 - (int)unaff_s6" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18)" * (cast_expression "(undefined4 *)(puVar21 + iVar11 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + iVar11 + 0x18)" ( (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(puVar21 + iVar11 + 0x18);" (assignment_expression "*local_34 = (int)(puVar21 + iVar11 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(puVar21 + iVar11 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar21 + iVar11 + 0x18)" ( (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a14" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (if_statement "if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(pbVar19[-1] != 0x29)" ( (binary_expression "pbVar19[-1] != 0x29" (subscript_expression "pbVar19[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a24" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (if_statement "if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" if (parenthesized_expression "(0x1f < param_1 - 0x21U)" ( (binary_expression "0x1f < param_1 - 0x21U" number_literal < (binary_expression "param_1 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" { (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" identifier = (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" ( (pointer_expression "*(code *)PTR___assert_fail_00049460" * (cast_expression "(code *)PTR___assert_fail_00049460" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" ( (binary_expression "PTR_LAB_00049218 + 0x7a38" identifier + number_literal) , (binary_expression "PTR_LAB_00049218 + 0x7a00" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_00049218 + 0x7d60" identifier + number_literal) ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (expression_statement "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" identifier = (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" * (cast_expression "(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" ( (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0" (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4" identifier + (binary_expression "(param_1 - 0x21U) * 4" (parenthesized_expression "(param_1 - 0x21U)" ( (binary_expression "param_1 - 0x21U" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" identifier = (cast_expression "(int)(char)pbVar19[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar19[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar19[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)) ;) }))) (labeled_statement "joined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;" statement_identifier : (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;)) }))) (expression_statement "puVar18 = puVar21;" (assignment_expression "puVar18 = puVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar2)" ( (binary_expression "local_2c == *(byte **)puVar2" identifier == (pointer_expression "*(byte **)puVar2" * (cast_expression "(byte **)puVar2" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) 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 "pcVar29 = FUN_0002bd90;" (assignment_expression "pcVar29 = FUN_0002bd90" identifier = identifier) ;) (expression_statement "pbVar16 = local_2c;" (assignment_expression "pbVar16 = local_2c" identifier = 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 "puVar3 = puVar22 + 0x25450;" (assignment_expression "puVar3 = puVar22 + 0x25450" identifier = (binary_expression "puVar22 + 0x25450" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);" (assignment_expression "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c)" identifier = (pointer_expression "*(undefined4 **)(puVar22 + 0x1d86c)" * (cast_expression "(undefined4 **)(puVar22 + 0x1d86c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1d86c)" ( (binary_expression "puVar22 + 0x1d86c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_68" (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 "*(undefined **)(puVar21 + -0x1c) = unaff_s3;" (assignment_expression "*(undefined **)(puVar21 + -0x1c) = unaff_s3" (pointer_expression "*(undefined **)(puVar21 + -0x1c)" * (cast_expression "(undefined **)(puVar21 + -0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x1c)" ( (binary_expression "puVar21 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar21 + -0x160) = puVar3;" (assignment_expression "*(undefined **)(puVar21 + -0x160) = puVar3" (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" 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) = pcVar29;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar29" (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) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar19" (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 "*(undefined1 **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" * (cast_expression "(undefined1 **)(puVar21 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x14)" ( (binary_expression "puVar21 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x18) = param_3" (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 "*(undefined **)(puVar21 + -0x20) = puVar2;" (assignment_expression "*(undefined **)(puVar21 + -0x20) = puVar2" (pointer_expression "*(undefined **)(puVar21 + -0x20)" * (cast_expression "(undefined **)(puVar21 + -0x20)" ( (type_descriptor "undefined **" 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) = puVar5;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar5" (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) = pbVar16 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar16 + 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 "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar15 = (byte *)(uint)*pbVar16;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar16" identifier = (binary_expression "(byte *)(uint)*pbVar16" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar5" (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 "*puVar5" * identifier)) ;) (expression_statement "pbVar20 = *(byte **)(puVar22 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(puVar22 + 0x1d488)" identifier = (pointer_expression "*(byte **)(puVar22 + 0x1d488)" * (cast_expression "(byte **)(puVar22 + 0x1d488)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar27 = pbVar12;" (assignment_expression "pbVar27 = pbVar12" identifier = identifier) ;) (if_statement "if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" if (parenthesized_expression "(pbVar15 != (byte *)0x0)" ( (binary_expression "pbVar15 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" { (expression_statement "uVar4 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar4 = *(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 = uVar4 & 2;" (assignment_expression "unaff_s1 = uVar4 & 2" identifier = (binary_expression "uVar4 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar4 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar4 & 0x10)" identifier = (cast_expression "(byte *)(uVar4 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar4 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar4 & 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 "uVar4 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 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 *)(puVar22 + 0x1d478)" * (cast_expression "(undefined4 *)(puVar22 + 0x1d478)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d478)" ( (binary_expression "puVar22 + 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 *)(puVar22 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar22 + 0x1d488)" * (cast_expression "(int *)(puVar22 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar22 + 0x1d488)" * (cast_expression "(int *)(puVar22 + 0x1d488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 0x1d488)" ( (binary_expression "puVar22 + 0x1d488" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_3 = pbVar16;" (assignment_expression "param_3 = pbVar16" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);" do (compound_statement "{\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    }" { (expression_statement "pbVar16 = pbVar15;" (assignment_expression "pbVar16 = pbVar15" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);" (assignment_expression "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4 + 3)" ( (binary_expression "*piVar6 + (int)pbVar15 * 4 + 3" (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" if (parenthesized_expression "(((uint)(pbVar16 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar16 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + -0x21)" ( (binary_expression "pbVar16 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" { (expression_statement "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" identifier = (cast_expression "(byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -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)(pbVar16 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar16 + -0x21)" ( (binary_expression "pbVar16 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar19;" return identifier ;) })) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" identifier = identifier) ;) (if_statement "if (pbVar27 == pbVar13) goto LAB_0002c064;" if (parenthesized_expression "(pbVar27 == pbVar13)" ( (binary_expression "pbVar27 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "pbVar15 = (byte *)(uint)*pbVar27;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar27" identifier = (binary_expression "(byte *)(uint)*pbVar27" (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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" identifier = (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" ( (pointer_expression "**(code **)(puVar3 + -0x7d7c)" * (pointer_expression "*(code **)(puVar3 + -0x7d7c)" * (cast_expression "(code **)(puVar3 + -0x7d7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7d7c)" ( (binary_expression "puVar3 + -0x7d7c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar21 + -0x160)" * (cast_expression "(undefined **)(puVar21 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x160)" ( (binary_expression "puVar21 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);" (assignment_expression "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4)" identifier = (pointer_expression "*(byte **)(*piVar6 + (int)pbVar15 * 4)" * (cast_expression "(byte **)(*piVar6 + (int)pbVar15 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4)" ( (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = pbVar16;" (assignment_expression "unaff_s6 = pbVar16" identifier = identifier) ;) (if_statement "if (pbVar15 != pbVar16) goto LAB_0002c064;" if (parenthesized_expression "(pbVar15 != pbVar16)" ( (binary_expression "pbVar15 != pbVar16" identifier != identifier) )) (goto_statement "goto LAB_0002c064;" goto statement_identifier ;)) (expression_statement "param_3 = *(byte **)(puVar21 + -0x154);" (assignment_expression "param_3 = *(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 "pbVar15 = (byte *)(uint)*param_3;" (assignment_expression "pbVar15 = (byte *)(uint)*param_3" identifier = (binary_expression "(byte *)(uint)*param_3" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" identifier = (binary_expression "pbVar27 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar21 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = param_3 + 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 "param_3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar15 != (byte *)0x0)" ( (binary_expression "pbVar15 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pbVar7 = (byte *)0x0;" (assignment_expression "pbVar7 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar27 != pbVar13)" ( (binary_expression "pbVar27 != pbVar13" identifier != identifier) )) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" { (expression_statement "param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "param_3 = (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 (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" if (parenthesized_expression "(param_3 == (byte *)0x0)" ( (binary_expression "param_3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar7 = (byte *)0x1;\n    }" { (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" else (compound_statement "{\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" { (expression_statement "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);" (assignment_expression "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f)" identifier = (cast_expression "(byte *)(uint)(*pbVar27 != 0x2f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(*pbVar27 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar27 != 0x2f)" ( (binary_expression "*pbVar27 != 0x2f" (pointer_expression "*pbVar27" * identifier) != number_literal) ))))) ;) }))) })) (labeled_statement "LAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar11 = *(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 (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }" if (parenthesized_expression "(iVar11 == **(int **)(puVar21 + -0x144))" ( (binary_expression "iVar11 == **(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 pbVar7;\n  }" { (return_statement "return pbVar7;" return identifier ;) })) (expression_statement "pcVar29 = *(code **)(puVar3 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(puVar3 + -0x7c10)" identifier = (pointer_expression "*(code **)(puVar3 + -0x7c10)" * (cast_expression "(code **)(puVar3 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x7c10)" ( (binary_expression "puVar3 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar23 = *(code **)(pcVar29 + 0x1cbc4);" (assignment_expression "pcVar23 = *(code **)(pcVar29 + 0x1cbc4)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x1cbc4)" * (cast_expression "(code **)(pcVar29 + 0x1cbc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1cbc4)" ( (binary_expression "pcVar29 + 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 "piVar6 = *(int **)(pcVar29 + 0x1cc28);" (assignment_expression "piVar6 = *(int **)(pcVar29 + 0x1cc28)" identifier = (pointer_expression "*(int **)(pcVar29 + 0x1cc28)" * (cast_expression "(int **)(pcVar29 + 0x1cc28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1cc28)" ( (binary_expression "pcVar29 + 0x1cc28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar27" (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) = pbVar15;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar15" (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) = pcVar29 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar29 + 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 "pcVar29 + 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 "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x18c)" * (cast_expression "(undefined1 **)(puVar21 + -0x18c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + -0x18c)" ( (binary_expression "puVar21 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar21 + -400) = param_3;" (assignment_expression "*(byte **)(puVar21 + -400) = param_3" (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) = pbVar13;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar13" (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) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar11" (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) = pbVar12;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar12" (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) = *piVar6;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar6" (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 "*piVar6" * identifier)) ;) (expression_statement "iVar11 = (*pcVar23)();" (assignment_expression "iVar11 = (*pcVar23)()" identifier = (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" if (parenthesized_expression "(iVar11 == 1)" ( (binary_expression "iVar11 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }" { (labeled_statement "LAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);" statement_identifier : (expression_statement "pbVar12 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar12 = *(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 "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12)" identifier = (call_expression "(**(code **)(iVar24 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ca4)" * (pointer_expression "*(code **)(iVar24 + -0x7ca4)" * (cast_expression "(code **)(iVar24 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ca4)" ( (binary_expression "iVar24 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 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 "pbVar12 + iVar11" identifier + identifier) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" else (compound_statement "{\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" { (expression_statement "puVar14 = puVar21 + -0x1ac;" (assignment_expression "puVar14 = puVar21 + -0x1ac" identifier = (binary_expression "puVar21 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = puVar21 + -0x1b4;" (assignment_expression "unaff_s5 = puVar21 + -0x1b4" identifier = (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 "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);" (assignment_expression "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14)" identifier = (call_expression "(*pcVar29)(0,unaff_s5,0,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(0,unaff_s5,0,puVar14)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar13 = (byte *)(iVar11 + 1);" (assignment_expression "pbVar13 = (byte *)(iVar11 + 1)" identifier = (cast_expression "(byte *)(iVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" ( (pointer_expression "**(code **)(iVar24 + -0x7be8)" * (pointer_expression "*(code **)(iVar24 + -0x7be8)" * (cast_expression "(code **)(iVar24 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7be8)" ( (binary_expression "iVar24 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002ccf0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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 "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" identifier = identifier) ;) (expression_statement "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(0,unaff_s6,0,puVar14)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar20 = param_3 + 1;" (assignment_expression "pbVar20 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" ( (pointer_expression "**(code **)(iVar24 + -0x7be8)" * (pointer_expression "*(code **)(iVar24 + -0x7be8)" * (cast_expression "(code **)(iVar24 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7be8)" ( (binary_expression "iVar24 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 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 "pbVar16 = pbVar13 + (int)pbVar20;" (assignment_expression "pbVar16 = pbVar13 + (int)pbVar20" identifier = (binary_expression "pbVar13 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16))" ( (binary_expression "(pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)" (parenthesized_expression "(pbVar16 < pbVar13)" ( (binary_expression "pbVar16 < pbVar13" identifier < identifier) )) || (parenthesized_expression "((byte *)0x3fffffff < pbVar16)" ( (binary_expression "(byte *)0x3fffffff < pbVar16" (cast_expression "(byte *)0x3fffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) )) (compound_statement "{\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }" { (labeled_statement "LAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;" statement_identifier : (expression_statement "pbVar16 = (byte *)0xffffffff;" (assignment_expression "pbVar16 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" else (if_statement "if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" if (parenthesized_expression "(pbVar16 < (byte *)0x7d0)" ( (binary_expression "pbVar16 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }" { (expression_statement "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar16 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar16 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar16 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar16 * 4 + 7U" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1c8;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1c8" identifier = (binary_expression "puVar21 + iVar10 + -0x1c8" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar15 = puVar18 + (int)pbVar13 * 4;" (assignment_expression "pbVar15 = puVar18 + (int)pbVar13 * 4" identifier = (binary_expression "puVar18 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(puVar18,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" { (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" statement_identifier : (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" do (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        }" { (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" statement_identifier : (expression_statement "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d80))" ( (pointer_expression "**(code **)(iVar24 + -0x7d80)" * (pointer_expression "*(code **)(iVar24 + -0x7d80)" * (cast_expression "(code **)(iVar24 + -0x7d80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d80)" ( (binary_expression "iVar24 + -0x7d80" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" ( (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" * (cast_expression "(int *)(iVar24 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x7fc8)" ( (binary_expression "iVar24 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" ( (pointer_expression "**(code **)(iVar24 + -0x7ba4)" * (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) )) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19" (pointer_expression "*(byte **)(puVar21 + iVar10 + -0x1d0)" * (cast_expression "(byte **)(puVar21 + iVar10 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + iVar10 + -0x1d0)" ( (binary_expression "puVar21 + iVar10 + -0x1d0" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier = (cast_expression "(byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar15 + (int)param_3 * 4" identifier + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" identifier = identifier) ;) (expression_statement "unaff_s5 = puVar18;" (assignment_expression "unaff_s5 = puVar18" identifier = identifier) ;) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1e0" identifier = (binary_expression "puVar21 + iVar10 + -0x1e0" (binary_expression "puVar21 + iVar10" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" else (compound_statement "{\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" { (expression_statement "iVar11 = (**(code **)(iVar24 + -0x7c80))();" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7c80))()" identifier = (call_expression "(**(code **)(iVar24 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7c80))" ( (pointer_expression "**(code **)(iVar24 + -0x7c80)" * (pointer_expression "*(code **)(iVar24 + -0x7c80)" * (cast_expression "(code **)(iVar24 + -0x7c80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7c80)" ( (binary_expression "iVar24 + -0x7c80" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002cc10;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cc10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -0x7ba4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar11" (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 "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);" (assignment_expression "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4)" identifier = (cast_expression "(byte *)(iVar11 + (int)pbVar13 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + (int)pbVar13 * 4)" ( (binary_expression "iVar11 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);" (call_expression "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(iVar11,unaff_s5,pbVar13,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" identifier = (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(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 (iVar11 == 0) goto LAB_0002cd10;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cd10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7ba4)" * (cast_expression "(code **)(iVar24 + -0x7ba4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7ba4)" ( (binary_expression "iVar24 + -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 "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" identifier = (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" identifier (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" ( (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 "pbVar15 + (int)param_3 * 4" identifier + (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar19 << 0x1d)" ( (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" ( (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 "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" identifier = identifier) ;) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" identifier = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) }))))) }))) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar24 = *(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 "pcVar29 = *(code **)(iVar11 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c10)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c10)" * (cast_expression "(code **)(iVar11 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c10)" ( (binary_expression "iVar11 + -0x7c10" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == *piVar6) {\n    return pbVar16;\n  }" if (parenthesized_expression "(iVar24 == *piVar6)" ( (binary_expression "iVar24 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return pbVar16;\n  }" { (return_statement "return pbVar16;" return identifier ;) })) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar23 = pcVar29 + 0x244c0;" (assignment_expression "pcVar23 = pcVar29 + 0x244c0" identifier = (binary_expression "pcVar29 + 0x244c0" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc)" identifier = (pointer_expression "*(undefined4 **)(pcVar29 + 0x1c8dc)" * (cast_expression "(undefined4 **)(pcVar29 + 0x1c8dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c8dc)" ( (binary_expression "pcVar29 + 0x1c8dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(puVar18 + -0xf4) = puVar5;" (assignment_expression "*(undefined4 **)(puVar18 + -0xf4) = puVar5" (pointer_expression "*(undefined4 **)(puVar18 + -0xf4)" * (cast_expression "(undefined4 **)(puVar18 + -0xf4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar18 + -0x110) = pcVar23;" (assignment_expression "*(code **)(puVar18 + -0x110) = pcVar23" (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar18 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar18 + -4) = pcVar30" (pointer_expression "*(code **)(puVar18 + -4)" * (cast_expression "(code **)(puVar18 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar18 + -8)" * (cast_expression "(undefined1 **)(puVar18 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = (binary_expression "puVar21 + -0x1e0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar18 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar18 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar18 + -0xc)" * (cast_expression "(byte **)(puVar18 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xc)" ( (binary_expression "puVar18 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar18 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar18 + -0x10)" * (cast_expression "(byte **)(puVar18 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x10)" ( (binary_expression "puVar18 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar18 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" * (cast_expression "(undefined1 **)(puVar18 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x14)" ( (binary_expression "puVar18 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar18 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar18 + -0x18)" * (cast_expression "(byte **)(puVar18 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x18)" ( (binary_expression "puVar18 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x1c) = pbVar13;" (assignment_expression "*(byte **)(puVar18 + -0x1c) = pbVar13" (pointer_expression "*(byte **)(puVar18 + -0x1c)" * (cast_expression "(byte **)(puVar18 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x1c)" ( (binary_expression "puVar18 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x20) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x20) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x20)" * (cast_expression "(byte **)(puVar18 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x20)" ( (binary_expression "puVar18 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x24)" * (cast_expression "(int **)(puVar18 + -0x24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x24)" ( (binary_expression "puVar18 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x28) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x28) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x28)" * (cast_expression "(byte **)(puVar18 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x28)" ( (binary_expression "puVar18 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + 4) = pbVar12;" (assignment_expression "*(byte **)(puVar18 + 4) = pbVar12" (pointer_expression "*(byte **)(puVar18 + 4)" * (cast_expression "(byte **)(puVar18 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x100) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x100) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c)" * (cast_expression "(undefined4 *)(puVar18 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c)" ( (binary_expression "puVar18 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }" { (if_statement "if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" { (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" statement_identifier : (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" identifier = (call_expression "(**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c840))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c840)" * (pointer_expression "*(code **)(pcVar29 + 0x1c840)" * (cast_expression "(code **)(pcVar29 + 0x1c840)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c840)" ( (binary_expression "pcVar29 + 0x1c840" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar18 + -0xf8))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) )))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" { (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar18 + -0xf4)" * (cast_expression "(int **)(puVar18 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d15c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002cdbc;" goto statement_identifier ;) })) (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c7f8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c7f8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c7f8)" * (cast_expression "(code **)(pcVar29 + 0x1c7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c7f8)" ( (binary_expression "pcVar29 + 0x1c7f8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar5 = 0x16;" (assignment_expression "*puVar5 = 0x16" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" else (compound_statement "{\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" { (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" { (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cd88;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" * (cast_expression "(undefined4 *)(puVar18 + -0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 4)" * (cast_expression "(undefined4 *)(puVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100)" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" * (cast_expression "(undefined4 *)(puVar18 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" identifier = (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) ;)) (expression_statement "puVar21 = puVar18 + -0xd0;" (assignment_expression "puVar21 = puVar18 + -0xd0" identifier = (binary_expression "puVar18 + -0xd0" identifier + number_literal)) ;) (expression_statement "iVar10 = *(int *)(puVar18 + -0xf8);" (assignment_expression "iVar10 = *(int *)(puVar18 + -0xf8)" identifier = (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) ;) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d60);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d60)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7d60)" * (cast_expression "(code **)(pcVar23 + -0x7d60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7d60)" ( (binary_expression "pcVar23 + -0x7d60" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" identifier = (cast_expression "(byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" ( (binary_expression "*(int *)(pcVar23 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar23 + -0x7fc8)" * (cast_expression "(int *)(pcVar23 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + -0x7fc8)" ( (binary_expression "pcVar23 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar11 + iVar10 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + iVar10 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar11 + iVar10 + -1)" * (cast_expression "(undefined1 *)(iVar11 + iVar10 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar10 + -1)" ( (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar12,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" if (parenthesized_expression "(-1 < iVar24)" ( (binary_expression "-1 < iVar24" number_literal < identifier) )) (compound_statement "{\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" { (expression_statement "iVar24 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar24 = *(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 "pcVar29 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar29 = *(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 "iVar28 = *(int *)(puVar18 + -0xc0);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xc0)" identifier = (pointer_expression "*(int *)(puVar18 + -0xc0)" * (cast_expression "(int *)(puVar18 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" * (cast_expression "(undefined4 *)(puVar18 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = (byte *)(iVar24 + 0x6154);" (assignment_expression "pbVar12 = (byte *)(iVar24 + 0x6154)" identifier = (cast_expression "(byte *)(iVar24 + 0x6154)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x6154)" ( (binary_expression "iVar24 + 0x6154" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" * (cast_expression "(undefined4 *)(puVar18 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar12,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" if (parenthesized_expression "(-1 < iVar24)" ( (binary_expression "-1 < iVar24" number_literal < identifier) )) (compound_statement "{\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" { (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar13 = (byte *)0xffffff9c;" (assignment_expression "pbVar13 = (byte *)0xffffff9c" identifier = (cast_expression "(byte *)0xffffff9c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xec)" * (cast_expression "(undefined4 *)(puVar18 + -0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xec)" ( (binary_expression "puVar18 + -0xec" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xe4)" * (cast_expression "(undefined4 *)(puVar18 + -0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe4)" ( (binary_expression "puVar18 + -0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" * (cast_expression "(undefined4 *)(puVar18 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xdc)" * (cast_expression "(undefined4 *)(puVar18 + -0xdc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xdc)" ( (binary_expression "puVar18 + -0xdc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar18 + -0xe8)" * (cast_expression "(int *)(puVar18 + -0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe8)" ( (binary_expression "puVar18 + -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 *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" statement_identifier : (if_statement "if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" if (parenthesized_expression "((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4)))" ( (binary_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))" (parenthesized_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec))" ( (binary_expression "*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)" (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar18 + -0xec)" * (cast_expression "(int *)(puVar18 + -0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xec)" ( (binary_expression "puVar18 + -0xec" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar28 == *(int *)(puVar18 + -0xe4))" ( (binary_expression "iVar28 == *(int *)(puVar18 + -0xe4)" identifier == (pointer_expression "*(int *)(puVar18 + -0xe4)" * (cast_expression "(int *)(puVar18 + -0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe4)" ( (binary_expression "puVar18 + -0xe4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }" { (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(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 *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" if (parenthesized_expression "(*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc))" ( (binary_expression "*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)" (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar18 + -0xdc)" * (cast_expression "(int *)(puVar18 + -0xdc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xdc)" ( (binary_expression "puVar18 + -0xdc" identifier + number_literal) ))))) )) (compound_statement "{\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" { (if_statement "if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" { (expression_statement "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6)" identifier = (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar6)" (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 "(piVar6)" ( identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002d19c;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002d19c;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *(int *)(puVar18 + -0xe0);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0xe0)" identifier = (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" if (parenthesized_expression "(*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1)" ( (binary_expression "*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) == (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) + number_literal)) )) (compound_statement "{\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" { (expression_statement "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);" (assignment_expression "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1)" (pointer_expression "*(undefined1 **)(puVar18 + -0xe0)" * (cast_expression "(undefined1 **)(puVar18 + -0xe0)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" * (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "pbVar12 = *(byte **)(puVar18 + -0xe0);" (assignment_expression "pbVar12 = *(byte **)(puVar18 + -0xe0)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xe0)" * (cast_expression "(byte **)(puVar18 + -0xe0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);" (assignment_expression "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" identifier = (cast_expression "(byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" ( (binary_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12" (parenthesized_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8))" ( (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) + (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) )) - (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16)" (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 *)(puVar18 + -0x108),pbVar12,pbVar16)" ( (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" if (parenthesized_expression "(*(int *)(puVar18 + 4) == 0)" ( (binary_expression "*(int *)(puVar18 + 4) == 0" (pointer_expression "*(int *)(puVar18 + 4)" * (cast_expression "(int *)(puVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" { (expression_statement "pbVar12 = pbVar16;" (assignment_expression "pbVar12 = pbVar16" identifier = identifier) ;) (expression_statement "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" identifier = (call_expression "(**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(**(code **)(pcVar23 + -0x7c78))" ( (pointer_expression "**(code **)(pcVar23 + -0x7c78)" * (pointer_expression "*(code **)(pcVar23 + -0x7c78)" * (cast_expression "(code **)(pcVar23 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7c78)" ( (binary_expression "pcVar23 + -0x7c78" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" * (cast_expression "(undefined4 *)(puVar18 + -0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar11 = *(int *)(puVar18 + -0x100);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x100)" identifier = (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" { (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" identifier = (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) ;) })) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002d158;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" else (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" { (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(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 "pbVar15 = *(byte **)(puVar18 + -0xe8);" (assignment_expression "pbVar15 = *(byte **)(puVar18 + -0xe8)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xe8)" * (cast_expression "(byte **)(puVar18 + -0xe8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xe8)" ( (binary_expression "puVar18 + -0xe8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);" (assignment_expression "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0)" identifier = (cast_expression "(byte *)(*pcVar29)(pbVar13,pbVar15,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(pbVar13,pbVar15,0)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar13,pbVar15,0)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" if (parenthesized_expression "((int)pbVar13 < 0)" ( (binary_expression "(int)pbVar13 < 0" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" { (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d6c)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7d6c)" * (cast_expression "(code **)(pcVar23 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7d6c)" ( (binary_expression "pcVar23 + -0x7d6c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d138:\n            (*pcVar29)(piVar6);" statement_identifier : (expression_statement "(*pcVar29)(piVar6);" (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;) })) (expression_statement "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" identifier = identifier) ;) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" identifier = (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7c40)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(3,pbVar13,puVar21)" ( number_literal , identifier , identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }" { (if_statement "if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" { (labeled_statement "LAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7d1c);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7d1c)" identifier = (pointer_expression "*(code **)(iVar24 + -0x7d1c)" * (cast_expression "(code **)(iVar24 + -0x7d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d1c)" ( (binary_expression "iVar24 + -0x7d1c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" * (cast_expression "(undefined4 *)(puVar18 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -0xf0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" * (cast_expression "(undefined4 *)(puVar18 + -0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd8)" * (cast_expression "(undefined4 *)(puVar18 + -0xd8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd8)" ( (binary_expression "puVar18 + -0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" * (cast_expression "(undefined4 *)(puVar18 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" * (cast_expression "(undefined4 *)(puVar18 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd4)" ( (binary_expression "puVar18 + -0xd4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" * (cast_expression "(undefined4 *)(puVar18 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) ))))) ;) (expression_statement "piVar6 = (int *)(*pcVar29)(pbVar13);" (assignment_expression "piVar6 = (int *)(*pcVar29)(pbVar13)" identifier = (cast_expression "(int *)(*pcVar29)(pbVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(pbVar13)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(pbVar13)" ( identifier ))))) ;) (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (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              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 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              pcVar29 = *(code **)(iVar11 + -0x7d38);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002cf18:\n              pbVar19[0] = 0;" statement_identifier : (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0;" (assignment_expression "pbVar19[3] = 0" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9 = (int *)(*pcVar29)(piVar6);" (assignment_expression "piVar9 = (int *)(*pcVar29)(piVar6)" identifier = (cast_expression "(int *)(*pcVar29)(piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(piVar6)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" { (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\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                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }" { (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" { (labeled_statement "LAB_0002d128:\n                    pbVar16 = (byte *)0x2;" statement_identifier : (expression_statement "pbVar16 = (byte *)0x2;" (assignment_expression "pbVar16 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 2;" (assignment_expression "pbVar19[3] = 2" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "(**(code **)(iVar11 + -0x7d90))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d90))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d90))" ( (pointer_expression "**(code **)(iVar11 + -0x7d90)" * (pointer_expression "*(code **)(iVar11 + -0x7d90)" * (cast_expression "(code **)(iVar11 + -0x7d90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d90)" ( (binary_expression "iVar11 + -0x7d90" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);" (assignment_expression "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7d38)" ( (binary_expression "*(int *)(puVar18 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (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)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) == '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002d128;" 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)) )) (goto_statement "goto LAB_0002d128;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) != '.')" ( (binary_expression "*(char *)((int)piVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" * (cast_expression "(char *)((int)piVar9 + 0x13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (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 *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" statement_identifier : (if_statement "if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" if (parenthesized_expression "(*(char *)(piVar9 + 5) != '\0')" ( (binary_expression "*(char *)(piVar9 + 5) != '\0'" (pointer_expression "*(char *)(piVar9 + 5)" * (cast_expression "(char *)(piVar9 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + 5)" ( (binary_expression "piVar9 + 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 "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6)" identifier = (call_expression "(**(code **)(iVar24 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar24 + -0x7d6c)" * (pointer_expression "*(code **)(iVar24 + -0x7d6c)" * (cast_expression "(code **)(iVar24 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7d6c)" ( (binary_expression "iVar24 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier )))) ;) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_0002cec4;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002cec4;" goto statement_identifier ;)) (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;" statement_identifier : (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) }) (else_clause "else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" else (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" { (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" identifier = (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" ( (pointer_expression "**(code **)(iVar24 + -0x7cc8)" * (pointer_expression "*(code **)(iVar24 + -0x7cc8)" * (cast_expression "(code **)(iVar24 + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar24 + -0x7cc8)" ( (binary_expression "iVar24 + -0x7cc8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" if (parenthesized_expression "(piVar6 != (int *)0x0)" ( (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" { (expression_statement "(**(code **)(iVar11 + -0x7d6c))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d6c))" ( (pointer_expression "**(code **)(iVar11 + -0x7d6c)" * (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) }))) (expression_statement "(**(code **)(iVar11 + -0x7d68))(pbVar13);" (call_expression "(**(code **)(iVar11 + -0x7d68))(pbVar13)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d68))" ( (pointer_expression "**(code **)(iVar11 + -0x7d68)" * (pointer_expression "*(code **)(iVar11 + -0x7d68)" * (cast_expression "(code **)(iVar11 + -0x7d68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d68)" ( (binary_expression "iVar11 + -0x7d68" identifier + number_literal) ))))) )) (argument_list "(pbVar13)" ( identifier ))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" identifier = identifier) ;) (if_statement "if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) != 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) != 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002d150;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d1e4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" statement_identifier : (expression_statement "pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar19 = (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" identifier = (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" if (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" * (cast_expression "(int *)(puVar18 + -0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x100)" ( (binary_expression "puVar18 + -0x100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" * (cast_expression "(code **)(pcVar23 + -0x7bd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7bd8)" ( (binary_expression "pcVar23 + -0x7bd8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" statement_identifier : (expression_statement "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) ))) ;)) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" identifier = (pointer_expression "*(code **)(puVar18 + -0x110)" * (cast_expression "(code **)(puVar18 + -0x110)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) })) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;" statement_identifier : (expression_statement "*(byte **)pbVar19 = pbVar16;" (assignment_expression "*(byte **)pbVar19 = pbVar16" (pointer_expression "*(byte **)pbVar19" * (cast_expression "(byte **)pbVar19" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);" statement_identifier : (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" identifier = (pointer_expression "*(int **)(puVar18 + -0xf4)" * (cast_expression "(int **)(puVar18 + -0xf4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf4)" ( (binary_expression "puVar18 + -0xf4" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);" statement_identifier : (expression_statement "pbVar13 = *(byte **)(puVar18 + -0x2c);" (assignment_expression "pbVar13 = *(byte **)(puVar18 + -0x2c)" identifier = (pointer_expression "*(byte **)(puVar18 + -0x2c)" * (cast_expression "(byte **)(puVar18 + -0x2c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x2c)" ( (binary_expression "puVar18 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" if (parenthesized_expression "(pbVar13 != (byte *)*piVar9)" ( (binary_expression "pbVar13 != (byte *)*piVar9" identifier != (cast_expression "(byte *)*piVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) )) (compound_statement "{\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" { (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7c10)" identifier = (pointer_expression "*(code **)(pcVar23 + -0x7c10)" * (cast_expression "(code **)(pcVar23 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + -0x7c10)" ( (binary_expression "pcVar23 + -0x7c10" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" identifier = number_literal) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;" (assignment_expression "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70" (pointer_expression "*(code **)(puVar18 + -0x140)" * (cast_expression "(code **)(puVar18 + -0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) = (binary_expression "pcVar29 + 0x23e70" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar18 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -300)" * (cast_expression "(undefined4 *)(puVar18 + -300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -300)" ( (binary_expression "puVar18 + -300" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x130) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x130) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x130)" * (cast_expression "(byte **)(puVar18 + -0x130)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x130)" ( (binary_expression "puVar18 + -0x130" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar18 + -0x134) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x134) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x134)" * (cast_expression "(int **)(puVar18 + -0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x134)" ( (binary_expression "puVar18 + -0x134" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar18 + -0x138) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x138) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x138)" * (cast_expression "(byte **)(puVar18 + -0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x138)" ( (binary_expression "puVar18 + -0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\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      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }" { (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c1a8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c1a8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c1a8)" * (cast_expression "(code **)(pcVar29 + 0x1c1a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c1a8)" ( (binary_expression "pcVar29 + 0x1c1a8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0x7a;" (assignment_expression "*puVar5 = 0x7a" (pointer_expression "*puVar5" * identifier) = number_literal) ;) }) (else_clause "else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" else (if_statement "if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" if (parenthesized_expression "(pbVar13 == (byte *)0xa)" ( (binary_expression "pbVar13 == (byte *)0xa" identifier == (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" { (expression_statement "uVar31 = *(undefined4 *)pbVar12;" (assignment_expression "uVar31 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" identifier = (call_expression "(**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c2c8))" ( (pointer_expression "**(code **)(pcVar29 + 0x1c2c8)" * (pointer_expression "*(code **)(pcVar29 + 0x1c2c8)" * (cast_expression "(code **)(pcVar29 + 0x1c2c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x1c2c8)" ( (binary_expression "pcVar29 + 0x1c2c8" identifier + number_literal) ))))) )) (argument_list "(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar29 + 0x1bea8)" * (cast_expression "(int *)(pcVar29 + 0x1bea8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x1bea8)" ( (binary_expression "pcVar29 + 0x1bea8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" { (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))" ( (pointer_expression "**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" * (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7d34)" ( (binary_expression "*(int *)(puVar18 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar18 + -0x140)" * (cast_expression "(int *)(puVar18 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar31)" ( identifier ))) ;) (expression_statement "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);" (assignment_expression "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" identifier = (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" * (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7cc8)" ( (binary_expression "*(int *)(puVar18 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x140)" * (cast_expression "(int *)(puVar18 + -0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x140)" ( (binary_expression "puVar18 + -0x140" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pbVar12[0] = 0;" (assignment_expression "pbVar12[0] = 0" (subscript_expression "pbVar12[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[2] = 0;" (assignment_expression "pbVar12[2] = 0" (subscript_expression "pbVar12[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12[3] = 0;" (assignment_expression "pbVar12[3] = 0" (subscript_expression "pbVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(*pcVar29)();" (assignment_expression "puVar5 = (undefined4 *)(*pcVar29)()" identifier = (cast_expression "(undefined4 *)(*pcVar29)()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "*puVar5 = 0x3d;" (assignment_expression "*puVar5 = 0x3d" (pointer_expression "*puVar5" * identifier) = number_literal) ;) })) })))) (return_statement "return pbVar13;" return identifier ;) })) (return_statement "return *(byte **)(puVar18 + -0x108);" return (pointer_expression "*(byte **)(puVar18 + -0x108)" * (cast_expression "(byte **)(puVar18 + -0x108)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) ;) (labeled_statement "code_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;)) (if_statement "if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" if (parenthesized_expression "((piVar9[5] & 0xffff0000U) == 0x2e000000)" ( (binary_expression "(piVar9[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar9[5] & 0xffff0000U)" ( (binary_expression "piVar9[5] & 0xffff0000U" (subscript_expression "piVar9[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;)) (if_statement "if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" { (if_statement "if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" if (parenthesized_expression "(*piVar9 == iVar28)" ( (binary_expression "*piVar9 == iVar28" (pointer_expression "*piVar9" * identifier) == identifier) )) (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" { (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" identifier = (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ;) (if_statement "if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" if (parenthesized_expression "(piVar9[1] == *(int *)(puVar18 + -0xfc))" ( (binary_expression "piVar9[1] == *(int *)(puVar18 + -0xfc)" (subscript_expression "piVar9[1]" identifier [ number_literal ]) == (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) ))))) )) (compound_statement "{\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" { (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002cf5c;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" else (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" { (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" identifier = (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ;) }))) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;" if (parenthesized_expression "(iVar24 == *(int *)(puVar18 + -0xf0))" ( (binary_expression "iVar24 == *(int *)(puVar18 + -0xf0)" identifier == (pointer_expression "*(int *)(puVar18 + -0xf0)" * (cast_expression "(int *)(puVar18 + -0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -0xf0" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (labeled_statement "LAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c30)" * (cast_expression "(code **)(iVar11 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c30)" ( (binary_expression "iVar11 + -0x7c30" identifier + number_literal) ))))) ;)) })) (labeled_statement "LAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);" statement_identifier : (expression_statement "pbVar12 = (byte *)((int)piVar9 + 0x13);" (assignment_expression "pbVar12 = (byte *)((int)piVar9 + 0x13)" identifier = (cast_expression "(byte *)((int)piVar9 + 0x13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x13)" ( (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "*(undefined4 *)(puVar18 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar18 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar18 + -0x118)" * (cast_expression "(undefined4 *)(puVar18 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x118)" ( (binary_expression "puVar18 + -0x118" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" identifier = identifier) ;) (expression_statement "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21)" identifier = (call_expression "(*pcVar29)(3,pbVar13,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(3,pbVar13,pbVar12,puVar21)" ( number_literal , identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) goto LAB_0002cf10;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002cf10;" goto statement_identifier ;)) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d38)" * (cast_expression "(code **)(iVar11 + -0x7d38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d38)" ( (binary_expression "iVar11 + -0x7d38" identifier + number_literal) ))))) ;) (if_statement "if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;" if (parenthesized_expression "(((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)))" ( (binary_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28))" ( (binary_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)" (parenthesized_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)))" ( (binary_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" (parenthesized_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000)" ( (binary_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000)" ( (binary_expression "*(uint *)(puVar18 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar18 + -0xb8)" * (cast_expression "(uint *)(puVar18 + -0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xb8)" ( (binary_expression "puVar18 + -0xb8" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" ( (binary_expression "*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)" (pointer_expression "*(int *)(puVar18 + -0xd0)" * (cast_expression "(int *)(puVar18 + -0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd0)" ( (binary_expression "puVar18 + -0xd0" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xc0) != iVar28)" ( (binary_expression "*(int *)(puVar18 + -0xc0) != iVar28" (pointer_expression "*(int *)(puVar18 + -0xc0)" * (cast_expression "(int *)(puVar18 + -0xc0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xc0)" ( (binary_expression "puVar18 + -0xc0" identifier + number_literal) )))) != identifier) ))) )) || (parenthesized_expression "(*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" ( (binary_expression "*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)" (pointer_expression "*(int *)(puVar18 + -0xbc)" * (cast_expression "(int *)(puVar18 + -0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xbc)" ( (binary_expression "puVar18 + -0xbc" identifier + number_literal) )))) != (pointer_expression "*(int *)(puVar18 + -0xfc)" * (cast_expression "(int *)(puVar18 + -0xfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0002cf18;" goto statement_identifier ;)) (expression_statement "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));" (assignment_expression "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" identifier = (cast_expression "(byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" ( (binary_expression "*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108)" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) - (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) ))))) )))) ;) (expression_statement "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);" (assignment_expression "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" identifier = (cast_expression "(byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar11 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar11 + -0x7ca4))" ( (pointer_expression "**(code **)(iVar11 + -0x7ca4)" * (pointer_expression "*(code **)(iVar11 + -0x7ca4)" * (cast_expression "(code **)(iVar11 + -0x7ca4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7ca4)" ( (binary_expression "iVar11 + -0x7ca4" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier ))))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" if (parenthesized_expression "(pbVar27 <= pbVar16)" ( (binary_expression "pbVar27 <= pbVar16" identifier <= identifier) )) (compound_statement "{\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" { (expression_statement "pbVar20 = *(byte **)(puVar18 + -0xf8);" (assignment_expression "pbVar20 = *(byte **)(puVar18 + -0xf8)" identifier = (pointer_expression "*(byte **)(puVar18 + -0xf8)" * (cast_expression "(byte **)(puVar18 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" if (parenthesized_expression "(*(int *)(puVar18 + 4) != 0)" ( (binary_expression "*(int *)(puVar18 + 4) != 0" (pointer_expression "*(int *)(puVar18 + 4)" * (cast_expression "(int *)(puVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" { (expression_statement "pbVar16 = (byte *)0x22;" (assignment_expression "pbVar16 = (byte *)0x22" identifier = (cast_expression "(byte *)0x22" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0x22;" (assignment_expression "pbVar19[3] = 0x22" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d134;" goto statement_identifier ;) })) (expression_statement "pbVar7 = pbVar20;" (assignment_expression "pbVar7 = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }" if (parenthesized_expression "(pbVar20 < pbVar16)" ( (binary_expression "pbVar20 < pbVar16" identifier < identifier) )) (compound_statement "{\n      pbVar7 = pbVar16;\n    }" { (expression_statement "pbVar7 = pbVar16;" (assignment_expression "pbVar7 = pbVar16" identifier = identifier) ;) })) (expression_statement "pbVar17 = pbVar7 + (int)pbVar20;" (assignment_expression "pbVar17 = pbVar7 + (int)pbVar20" identifier = (binary_expression "pbVar7 + (int)pbVar20" identifier + (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c78);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c78)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7c78)" * (cast_expression "(code **)(iVar11 + -0x7c78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7c78)" ( (binary_expression "iVar11 + -0x7c78" identifier + number_literal) ))))) ;) (if_statement "if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" if (parenthesized_expression "(pbVar17 < pbVar20)" ( (binary_expression "pbVar17 < pbVar20" identifier < identifier) )) (compound_statement "{\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" { (labeled_statement "LAB_0002d338:\n      pbVar16 = (byte *)0xc;" statement_identifier : (expression_statement "pbVar16 = (byte *)0xc;" (assignment_expression "pbVar16 = (byte *)0xc" identifier = (cast_expression "(byte *)0xc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19[3] = 0xc;" (assignment_expression "pbVar19[3] = 0xc" (subscript_expression "pbVar19[3]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);" statement_identifier : (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" identifier = (pointer_expression "*(code **)(iVar11 + -0x7d6c)" * (cast_expression "(code **)(iVar11 + -0x7d6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7d6c)" ( (binary_expression "iVar11 + -0x7d6c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002d138;" goto statement_identifier ;) })) (expression_statement "*(byte **)(puVar18 + -0x104) = pbVar7;" (assignment_expression "*(byte **)(puVar18 + -0x104) = pbVar7" (pointer_expression "*(byte **)(puVar18 + -0x104)" * (cast_expression "(byte **)(puVar18 + -0x104)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" identifier = identifier) ;) (expression_statement "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" identifier = (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" ( (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" * (cast_expression "(undefined4 *)(puVar18 + -0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) goto LAB_0002d338;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d338;" goto statement_identifier ;)) (expression_statement "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);" (assignment_expression "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" identifier = (call_expression "(**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" ( (pointer_expression "**(code **)(iVar11 + -0x7be0)" * (pointer_expression "*(code **)(iVar11 + -0x7be0)" * (cast_expression "(code **)(iVar11 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7be0)" ( (binary_expression "iVar11 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" ( (binary_expression "pbVar27 + iVar24 + *(int *)(puVar18 + -0x104)" (binary_expression "pbVar27 + iVar24" identifier + identifier) + (pointer_expression "*(int *)(puVar18 + -0x104)" * (cast_expression "(int *)(puVar18 + -0x104)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) ))))) , (binary_expression "pbVar27 + iVar24" identifier + identifier) , (binary_expression "*(int *)(puVar18 + -0xf8) - (int)pbVar27" (pointer_expression "*(int *)(puVar18 + -0xf8)" * (cast_expression "(int *)(puVar18 + -0xf8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) - (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar18 + -0xf8) = pbVar17;" (assignment_expression "*(byte **)(puVar18 + -0xf8) = pbVar17" (pointer_expression "*(byte **)(puVar18 + -0xf8)" * (cast_expression "(byte **)(puVar18 + -0xf8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -0xf8)" ( (binary_expression "puVar18 + -0xf8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0xe0)" * (cast_expression "(undefined4 *)(puVar18 + -0xe0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar18 + -0x108) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x108)" * (cast_expression "(int *)(puVar18 + -0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x108)" ( (binary_expression "puVar18 + -0x108" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;" (assignment_expression "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" identifier = (call_expression "(**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" ( (pointer_expression "**(code **)(iVar11 + -0x7be0)" * (pointer_expression "*(code **)(iVar11 + -0x7be0)" * (cast_expression "(code **)(iVar11 + -0x7be0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + -0x7be0)" ( (binary_expression "iVar11 + -0x7be0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" ( (binary_expression "*(int *)(puVar18 + -0xe0) - (int)pbVar16" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) - (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" identifier = (pointer_expression "*(int *)(puVar18 + -0x110)" * (cast_expression "(int *)(puVar18 + -0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x110)" ( (binary_expression "puVar18 + -0x110" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(puVar18 + -0xd8);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xd8)" identifier = (pointer_expression "*(int *)(puVar18 + -0xd8)" * (cast_expression "(int *)(puVar18 + -0xd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd8)" ( (binary_expression "puVar18 + -0xd8" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" * (cast_expression "(int *)(puVar18 + -0xe0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xe0)" ( (binary_expression "puVar18 + -0xe0" identifier + number_literal) )))) = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" * (cast_expression "(undefined1 *)(iVar11 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + -1)" ( (binary_expression "iVar11 + -1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" * (cast_expression "(undefined4 *)(puVar18 + -0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xfc)" ( (binary_expression "puVar18 + -0xfc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" * (cast_expression "(undefined4 *)(puVar18 + -0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xd4)" ( (binary_expression "puVar18 + -0xd4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" * (cast_expression "(undefined4 *)(puVar18 + -0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x104)" ( (binary_expression "puVar18 + -0x104" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" * (cast_expression "(undefined4 *)(puVar18 + -0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0xf0)" ( (binary_expression "puVar18 + -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 IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ])))) ;) (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (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 (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) ;) (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 = (binary_expression 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + 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 (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 ;) })) (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 = (binary_expression 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 : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 (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 = (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 * (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 (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 = (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 = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 , 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_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);\n  goto LAB_0002ce58;\n}" (type_identifier "byte") (pointer_declarator "* FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" (* "*") (function_declarator "FUN_0002b6a0(int param_1,byte *param_2,byte *param_3,byte *param_4)" (identifier "FUN_0002b6a0") (parameter_list "(int param_1,byte *param_2,byte *param_3,byte *param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint uVar4;\n  byte bVar8;\n  undefined4 *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  int *piVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  uint unaff_s1;\n  byte *pbVar15;\n  byte *pbVar16;\n  undefined *unaff_s3;\n  byte *pbVar17;\n  undefined1 *unaff_s5;\n  undefined1 *puVar18;\n  byte *unaff_s6;\n  byte *pbVar19;\n  byte *pbVar20;\n  undefined1 *puVar21;\n  undefined *puVar22;\n  code *pcVar23;\n  int iVar24;\n  int iVar25;\n  undefined1 *puVar26;\n  byte *pbVar27;\n  int iVar28;\n  code *pcVar29;\n  code *pcVar30;\n  undefined4 uVar31;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000495fc;\n  puVar21 = auStack_68;\n  pbVar19 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;\n  pbVar12 = param_2;\n  pbVar13 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);\n  puVar22 = PTR_DAT_00049208;\n  iVar11 = (int)(char)param_2[1];\n  if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }\nLAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }\n  pcVar29 = FUN_0002bd90;\n  pbVar16 = local_2c;\n  puVar22 = PTR___stack_chk_fail_000495d0;\n  (*(code *)PTR___stack_chk_fail_000495d0)();\n  puVar3 = puVar22 + 0x25450;\n  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);\n  *(undefined1 **)(puVar21 + -8) = auStack_68;\n  *(undefined **)(puVar21 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar21 + -0x160) = puVar3;\n  *(code **)(puVar21 + -4) = pcVar29;\n  *(byte **)(puVar21 + -0xc) = pbVar19;\n  *(byte **)(puVar21 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;\n  *(byte **)(puVar21 + -0x18) = param_3;\n  *(undefined **)(puVar21 + -0x20) = puVar2;\n  *(uint *)(puVar21 + -0x24) = unaff_s1;\n  *(byte **)(puVar21 + -0x28) = param_2;\n  *(undefined4 **)(puVar21 + -0x144) = puVar5;\n  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;\n  pbVar15 = (byte *)(uint)*pbVar16;\n  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;\n  pbVar20 = *(byte **)(puVar22 + 0x1d488);\n  pbVar19 = pbVar13;\n  pbVar27 = pbVar12;\n  if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }\n  pbVar7 = (byte *)0x0;\n  if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }\nLAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);\n  if (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }\n  pcVar29 = *(code **)(puVar3 + -0x7c10);\n  pcVar30 = gnu_fnmatch;\n  (*pcVar29)();\n  puVar18 = puVar21 + -0x1e0;\n  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);\n  *(uint *)(puVar21 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar29 + 0x1cc28);\n  *(byte **)(puVar21 + -0x180) = pbVar27;\n  *(byte **)(puVar21 + -0x198) = pbVar15;\n  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;\n  *(code **)(puVar21 + -0x17c) = pcVar30;\n  *(byte **)(puVar21 + -0x184) = pbVar20;\n  *(byte **)(puVar21 + -0x188) = unaff_s6;\n  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;\n  *(byte **)(puVar21 + -400) = param_3;\n  *(byte **)(puVar21 + -0x194) = pbVar13;\n  *(byte **)(puVar21 + -0x1a0) = param_2;\n  *(int *)(puVar21 + -0x1b4) = iVar11;\n  *(byte **)(puVar21 + -0x1b8) = pbVar12;\n  *(int *)(puVar21 + -0x1a4) = *piVar6;\n  iVar11 = (*pcVar23)();\n  iVar24 = *(int *)(puVar21 + -0x1c8);\n  if (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }\n  iVar24 = *(int *)(puVar21 + -0x1a4);\n  pcVar29 = *(code **)(iVar11 + -0x7c10);\n  if (iVar24 == *piVar6) {\n    return pbVar16;\n  }\n  pcVar30 = rpl_getcwd;\n  (*pcVar29)();\n  pcVar23 = pcVar29 + 0x244c0;\n  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);\n  *(undefined4 **)(puVar18 + -0xf4) = puVar5;\n  *(code **)(puVar18 + -0x110) = pcVar23;\n  *(code **)(puVar18 + -4) = pcVar30;\n  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;\n  *(byte **)(puVar18 + -0xc) = pbVar20;\n  *(byte **)(puVar18 + -0x10) = unaff_s6;\n  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;\n  *(byte **)(puVar18 + -0x18) = param_3;\n  *(byte **)(puVar18 + -0x1c) = pbVar13;\n  *(byte **)(puVar18 + -0x20) = pbVar19;\n  *(int **)(puVar18 + -0x24) = piVar6;\n  *(byte **)(puVar18 + -0x28) = pbVar16;\n  *(byte **)(puVar18 + 4) = pbVar12;\n  *(int *)(puVar18 + -0x100) = iVar24;\n  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;\n  if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }\nLAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);\nLAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);\n  if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }\n  return *(byte **)(puVar18 + -0x108);\ncode_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;\nLAB_0002cf34:\n  pcVar29 = *(code **)(iVar11 + -0x7c30);\n  if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }\nLAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);\n  *(undefined4 *)(puVar18 + -0x118) = 0x100;\n  pbVar15 = pbVar13;\n  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (iVar24 != 0) goto LAB_0002cf10;\n  pcVar29 = *(code **)(iVar11 + -0x7d38);\n  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;\n  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));\n  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);\n  iVar11 = *(int *)(puVar18 + -0x110);\n  if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }\n  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;\n  iVar25 = *(int *)(puVar18 + -0x110);\n  iVar28 = *(int *)(puVar18 + -0xd8);\n  *(int *)(puVar18 + -0xe0) = iVar11 + -1;\n  *(undefined1 *)(iVar11 + -1) = 0x2f;\n  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);\n  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -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 "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "undefined *unaff_s3;" (type_identifier "undefined") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined1 *unaff_s5;" (type_identifier "undefined1") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (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 "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (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 "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "code *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "undefined4 uVar31;" (type_identifier "undefined4") (identifier "uVar31") (; ";")) (declaration "undefined1 auStack_68 [24];" (type_identifier "undefined1") (array_declarator "auStack_68 [24]" (identifier "auStack_68") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "byte *local_44;" (type_identifier "byte") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "byte *local_2c;" (type_identifier "byte") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (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 "puVar21 = auStack_68;" (assignment_expression "puVar21 = auStack_68" (identifier "puVar21") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "pbVar19 = param_2 + 1;" (assignment_expression "pbVar19 = param_2 + 1" (identifier "pbVar19") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000495fc;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000495fc" (identifier "local_2c") (= "=") (pointer_expression "*(byte **)PTR___stack_chk_guard_000495fc" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_000495fc" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000495fc")))) (; ";")) (expression_statement "pbVar12 = param_2;" (assignment_expression "pbVar12 = param_2" (identifier "pbVar12") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" (identifier "pbVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2)" (identifier "local_44") (= "=") (cast_expression "(byte *)(*(code *)PTR_strlen_0004953c)(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0004953c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0004953c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0004953c" (* "*") (cast_expression "(code *)PTR_strlen_0004953c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0004953c"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar22 = PTR_DAT_00049208;" (assignment_expression "puVar22 = PTR_DAT_00049208" (identifier "puVar22") (= "=") (identifier "PTR_DAT_00049208")) (; ";")) (expression_statement "iVar11 = (int)(char)param_2[1];" (assignment_expression "iVar11 = (int)(char)param_2[1]" (identifier "iVar11") (= "=") (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") (] "]"))))) (; ";")) (if_statement "if (iVar11 != 0) {\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = (undefined1 *)0x0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar3 = PTR_LAB_00049218 + 0x671c;\n    local_34 = &local_30;\n    puVar18 = auStack_68;\n    unaff_s6 = pbVar19;\nLAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = (undefined1 *)0x0;" (assignment_expression "unaff_s5 = (undefined1 *)0x0" (identifier "unaff_s5") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "unaff_s1 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s1 = (uint)(param_1 - 0x3fU < 2)" (identifier "unaff_s1") (= "=") (call_expression "(uint)(param_1 - 0x3fU < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 - 0x3fU < 2)" (( "(") (binary_expression "param_1 - 0x3fU < 2" (binary_expression "param_1 - 0x3fU" (identifier "param_1") (- "-") (number_literal "0x3fU")) (< "<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar3 = PTR_LAB_00049218 + 0x671c;" (assignment_expression "puVar3 = PTR_LAB_00049218 + 0x671c" (identifier "puVar3") (= "=") (binary_expression "PTR_LAB_00049218 + 0x671c" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x671c"))) (; ";")) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" (identifier "local_34") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "puVar18 = auStack_68;" (assignment_expression "puVar18 = auStack_68" (identifier "puVar18") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "unaff_s6 = pbVar19;" (assignment_expression "unaff_s6 = pbVar19" (identifier "unaff_s6") (= "=") (identifier "pbVar19")) (; ";")) (labeled_statement "LAB_0002b75c:\n    do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" (statement_identifier "LAB_0002b75c") (: ":") (do_statement "do {\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    } while (iVar11 != 0);" (do "do") (compound_statement "{\n      puVar21 = puVar18;\n      unaff_s3 = puVar22;\n      if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }\n      puVar18 = puVar21;\n    }" ({ "{") (expression_statement "puVar21 = puVar18;" (assignment_expression "puVar21 = puVar18" (identifier "puVar21") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "unaff_s3 = puVar22;" (assignment_expression "unaff_s3 = puVar22" (identifier "unaff_s3") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (iVar11 == 0x5b) {\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }\n      else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0x5b)" (( "(") (binary_expression "iVar11 == 0x5b" (identifier "iVar11") (== "==") (number_literal "0x5b")) () ")")) (compound_statement "{\n        if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }\n        bVar8 = pbVar19[1];\n        pbVar16 = pbVar19 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }\n        if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }\n        pbVar12 = (byte *)0x5d;\n        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }\n        iVar11 = (int)(char)pbVar16[1];\n      }" ({ "{") (if_statement "if (*(int *)(puVar22 + -0x5830) == 0) {\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar22 + -0x5830) == 0)" (( "(") (binary_expression "*(int *)(puVar22 + -0x5830) == 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" (* "*") (cast_expression "(int *)(puVar22 + -0x5830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x5830)" (( "(") (binary_expression "puVar22 + -0x5830" (identifier "puVar22") (+ "+") (number_literal "-0x5830")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);\n          uVar31 = 0xffffffff;\n          if (iVar11 != 0) {\n            uVar31 = 1;\n          }\n          *(undefined4 *)(puVar22 + -0x5830) = uVar31;\n        }" ({ "{") (expression_statement "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);" (assignment_expression "iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_getenv_0004956c)(puVar3)" (parenthesized_expression "(*(code *)PTR_getenv_0004956c)" (( "(") (pointer_expression "*(code *)PTR_getenv_0004956c" (* "*") (cast_expression "(code *)PTR_getenv_0004956c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_0004956c"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")")))) (; ";")) (expression_statement "uVar31 = 0xffffffff;" (assignment_expression "uVar31 = 0xffffffff" (identifier "uVar31") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar11 != 0) {\n            uVar31 = 1;\n          }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (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 *)(puVar22 + -0x5830) = uVar31;" (assignment_expression "*(undefined4 *)(puVar22 + -0x5830) = uVar31" (pointer_expression "*(undefined4 *)(puVar22 + -0x5830)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x5830)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x5830)" (( "(") (binary_expression "puVar22 + -0x5830" (identifier "puVar22") (+ "+") (number_literal "-0x5830")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (} "}"))) (expression_statement "bVar8 = pbVar19[1];" (assignment_expression "bVar8 = pbVar19[1]" (identifier "bVar8") (= "=") (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar16 = pbVar19 + 1;" (assignment_expression "pbVar16 = pbVar19 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" (if "if") (parenthesized_expression "((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))))" (( "(") (binary_expression "(bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" (parenthesized_expression "(bVar8 == 0x21)" (( "(") (binary_expression "bVar8 == 0x21" (identifier "bVar8") (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))" (( "(") (parenthesized_expression "(*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e))" (( "(") (binary_expression "*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)" (binary_expression "*(int *)(puVar22 + -0x5830) < 0" (pointer_expression "*(int *)(puVar22 + -0x5830)" (* "*") (cast_expression "(int *)(puVar22 + -0x5830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x5830)" (( "(") (binary_expression "puVar22 + -0x5830" (identifier "puVar22") (+ "+") (number_literal "-0x5830")) () ")")))) (< "<") (number_literal "0")) (&& "&&") (parenthesized_expression "(bVar8 == 0x5e)" (( "(") (binary_expression "bVar8 == 0x5e" (identifier "bVar8") (== "==") (number_literal "0x5e")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          bVar8 = pbVar19[2];\n          pbVar16 = pbVar19 + 2;\n        }" ({ "{") (expression_statement "bVar8 = pbVar19[2];" (assignment_expression "bVar8 = pbVar19[2]" (identifier "bVar8") (= "=") (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pbVar16 = pbVar19 + 2;" (assignment_expression "pbVar16 = pbVar19 + 2" (identifier "pbVar16") (= "=") (binary_expression "pbVar19 + 2" (identifier "pbVar19") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (bVar8 == 0x5d) {\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" (if "if") (parenthesized_expression "(bVar8 == 0x5d)" (( "(") (binary_expression "bVar8 == 0x5d" (identifier "bVar8") (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          bVar8 = pbVar16[1];\n          pbVar16 = pbVar16 + 1;\n        }" ({ "{") (expression_statement "bVar8 = pbVar16[1];" (assignment_expression "bVar8 = pbVar16[1]" (identifier "bVar8") (= "=") (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar12 = (byte *)0x5d;" (assignment_expression "pbVar12 = (byte *)0x5d" (identifier "pbVar12") (= "=") (cast_expression "(byte *)0x5d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5d"))) (; ";")) (while_statement "while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" (while "while") (parenthesized_expression "(pbVar19 = pbVar16 + 1, bVar8 != 0x5d)" (( "(") (comma_expression "pbVar19 = pbVar16 + 1, bVar8 != 0x5d" (assignment_expression "pbVar19 = pbVar16 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (, ",") (binary_expression "bVar8 != 0x5d" (identifier "bVar8") (!= "!=") (number_literal "0x5d"))) () ")")) (compound_statement "{\n          if (bVar8 == 0) goto LAB_0002b7b4;\n          pbVar16 = pbVar19;\n          bVar8 = *pbVar19;\n        }" ({ "{") (if_statement "if (bVar8 == 0) goto LAB_0002b7b4;" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002b7b4;" (goto "goto") (statement_identifier "LAB_0002b7b4") (; ";"))) (expression_statement "pbVar16 = pbVar19;" (assignment_expression "pbVar16 = pbVar19" (identifier "pbVar16") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "bVar8 = *pbVar19;" (assignment_expression "bVar8 = *pbVar19" (identifier "bVar8") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (} "}"))) (expression_statement "iVar11 = (int)(char)pbVar16[1];" (assignment_expression "iVar11 = (int)(char)pbVar16[1]" (identifier "iVar11") (= "=") (cast_expression "(int)(char)pbVar16[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar16[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar16[1]" (identifier "pbVar16") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" (else "else") (compound_statement "{\n        pbVar12 = &DAT_c0000601;\n        uVar4 = iVar11 - 0x21U & 0xff;\n        pbVar13 = (byte *)(uint)(uVar4 < 0x20);\n        if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }\njoined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;\n      }" ({ "{") (expression_statement "pbVar12 = &DAT_c0000601;" (assignment_expression "pbVar12 = &DAT_c0000601" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_c0000601" (& "&") (identifier "DAT_c0000601"))) (; ";")) (expression_statement "uVar4 = iVar11 - 0x21U & 0xff;" (assignment_expression "uVar4 = iVar11 - 0x21U & 0xff" (identifier "uVar4") (= "=") (binary_expression "iVar11 - 0x21U & 0xff" (binary_expression "iVar11 - 0x21U" (identifier "iVar11") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "pbVar13 = (byte *)(uint)(uVar4 < 0x20);" (assignment_expression "pbVar13 = (byte *)(uint)(uVar4 < 0x20)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(uint)(uVar4 < 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar4 < 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < 0x20)" (( "(") (binary_expression "uVar4 < 0x20" (identifier "uVar4") (< "<") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (pbVar13 == (byte *)0x0) {\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }\nLAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];\n        }" ({ "{") (if_statement "if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" (if "if") (parenthesized_expression "((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0))" (( "(") (binary_expression "(iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)" (parenthesized_expression "(iVar11 == 0x7c)" (( "(") (binary_expression "iVar11 == 0x7c" (identifier "iVar11") (== "==") (number_literal "0x7c")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" (( "(") (binary_expression "unaff_s5 == (undefined1 *)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n            pbVar16 = local_44;\n            if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;\n            pbVar13 = pbVar19 + -(int)unaff_s6;\n            pbVar15 = pbVar19 + 1;\n            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar26 = puVar21 + iVar24;\n            piVar6 = (int *)(puVar21 + iVar24 + 0x18);\n            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);\n            iVar11 = (int)(char)pbVar19[1];\n            *puVar18 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar12 = unaff_s6;\n            unaff_s6 = pbVar15;\n            pbVar19 = pbVar15;\n            puVar21 = puVar21 + iVar24;\n            local_34 = piVar6;\n            puVar18 = puVar26;\n            if (iVar11 == 0) break;\n            goto LAB_0002b75c;\n          }" ({ "{") (expression_statement "pbVar16 = local_44;" (assignment_expression "pbVar16 = local_44" (identifier "pbVar16") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (unaff_s1 == 0) {\n              pbVar16 = pbVar19 + (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              pbVar16 = pbVar19 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "pbVar16 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "pbVar16 = pbVar19 + (1 - (int)unaff_s6)" (identifier "pbVar16") (= "=") (binary_expression "pbVar19 + (1 - (int)unaff_s6)" (identifier "pbVar19") (+ "+") (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)(pbVar16 + 7) & 0xfffffffc) - 4) break;" (if "if") (parenthesized_expression "(0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4)" (( "(") (binary_expression "0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4" (number_literal "0x1f3b") (< "<") (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar16 + 7)" (( "(") (binary_expression "pbVar16 + 7" (identifier "pbVar16") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar13 = pbVar19 + -(int)unaff_s6;" (assignment_expression "pbVar13 = pbVar19 + -(int)unaff_s6" (identifier "pbVar13") (= "=") (binary_expression "pbVar19 + -(int)unaff_s6" (identifier "pbVar19") (+ "+") (unary_expression "-(int)unaff_s6" (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))))) (; ";")) (expression_statement "pbVar15 = pbVar19 + 1;" (assignment_expression "pbVar15 = pbVar19 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar24") (= "=") (unary_expression "-(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar16 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar16 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar16 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar16 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar16 + 7)" (( "(") (binary_expression "pbVar16 + 7" (identifier "pbVar16") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar26 = puVar21 + iVar24;" (assignment_expression "puVar26 = puVar21 + iVar24" (identifier "puVar26") (= "=") (binary_expression "puVar21 + iVar24" (identifier "puVar21") (+ "+") (identifier "iVar24"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar21 + iVar24 + 0x18);" (assignment_expression "piVar6 = (int *)(puVar21 + iVar24 + 0x18)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar21 + iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + iVar24 + 0x18)" (( "(") (binary_expression "puVar21 + iVar24 + 0x18" (binary_expression "puVar21 + iVar24" (identifier "puVar21") (+ "+") (identifier "iVar24")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);" (assignment_expression "puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" (identifier "puVar18") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000495e4" (* "*") (cast_expression "(code *)PTR_mempcpy_000495e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000495e4"))) () ")")) (argument_list "(puVar21 + iVar24 + 0x1c)" (( "(") (binary_expression "puVar21 + iVar24 + 0x1c" (binary_expression "puVar21 + iVar24" (identifier "puVar21") (+ "+") (identifier "iVar24")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" (identifier "iVar11") (= "=") (cast_expression "(int)(char)pbVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar19[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" (identifier "pbVar12") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" (identifier "unaff_s6") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "pbVar19 = pbVar15;" (assignment_expression "pbVar19 = pbVar15" (identifier "pbVar19") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "puVar21 = puVar21 + iVar24;" (assignment_expression "puVar21 = puVar21 + iVar24" (identifier "puVar21") (= "=") (binary_expression "puVar21 + iVar24" (identifier "puVar21") (+ "+") (identifier "iVar24"))) (; ";")) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" (identifier "local_34") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "puVar18 = puVar26;" (assignment_expression "puVar18 = puVar26" (identifier "puVar18") (= "=") (identifier "puVar26")) (; ";")) (if_statement "if (iVar11 == 0) break;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0002b75c;" (goto "goto") (statement_identifier "LAB_0002b75c") (; ";")) (} "}"))) (labeled_statement "LAB_0002b918:\n          iVar11 = (int)(char)pbVar19[1];" (statement_identifier "LAB_0002b918") (: ":") (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" (identifier "iVar11") (= "=") (cast_expression "(int)(char)pbVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar19[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]"))))) (; ";"))) (} "}")) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" (else "else") (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }\n          if (iVar11 != 0x29) goto LAB_0002b918;\n          if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }\n          iVar11 = (int)(char)pbVar19[1];\n          unaff_s5 = unaff_s5 + -1;\n        }" ({ "{") (while_statement "while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" (while "while") (parenthesized_expression "((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0)" (( "(") (binary_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0xc0000601U >> (uVar4 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar4 & 0x1f))" (( "(") (binary_expression "0xc0000601U >> (uVar4 & 0x1f)" (number_literal "0xc0000601U") (>> ">>") (parenthesized_expression "(uVar4 & 0x1f)" (( "(") (binary_expression "uVar4 & 0x1f" (identifier "uVar4") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar11 = (int)(char)pbVar19[1];\n            if (iVar11 != 0x28) goto joined_r0x0002b91c;\n            pbVar13 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar19 = pbVar19 + 1;\n            uVar4 = 7;\n          }" ({ "{") (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" (identifier "iVar11") (= "=") (cast_expression "(int)(char)pbVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar19[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (iVar11 != 0x28) goto joined_r0x0002b91c;" (if "if") (parenthesized_expression "(iVar11 != 0x28)" (( "(") (binary_expression "iVar11 != 0x28" (identifier "iVar11") (!= "!=") (number_literal "0x28")) () ")")) (goto_statement "goto joined_r0x0002b91c;" (goto "goto") (statement_identifier "joined_r0x0002b91c") (; ";"))) (expression_statement "pbVar13 = (byte *)0x1;" (assignment_expression "pbVar13 = (byte *)0x1" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (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"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = 7;" (assignment_expression "uVar4 = 7" (identifier "uVar4") (= "=") (number_literal "7")) (; ";")) (} "}"))) (if_statement "if (iVar11 != 0x29) goto LAB_0002b918;" (if "if") (parenthesized_expression "(iVar11 != 0x29)" (( "(") (binary_expression "iVar11 != 0x29" (identifier "iVar11") (!= "!=") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_0002b918;" (goto "goto") (statement_identifier "LAB_0002b918") (; ";"))) (if_statement "if (unaff_s5 == (undefined1 *)0x0) {\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" (if "if") (parenthesized_expression "(unaff_s5 == (undefined1 *)0x0)" (( "(") (binary_expression "unaff_s5 == (undefined1 *)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }\n            break;\n          }" ({ "{") (if_statement "if (1 < param_1 - 0x3fU) {\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" (if "if") (parenthesized_expression "(1 < param_1 - 0x3fU)" (( "(") (binary_expression "1 < param_1 - 0x3fU" (number_literal "1") (< "<") (binary_expression "param_1 - 0x3fU" (identifier "param_1") (- "-") (number_literal "0x3fU"))) () ")")) (compound_statement "{\n              local_44 = pbVar19 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "local_44 = pbVar19 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar19 + (1 - (int)unaff_s6)" (identifier "local_44") (= "=") (binary_expression "pbVar19 + (1 - (int)unaff_s6)" (identifier "pbVar19") (+ "+") (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)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" (if "if") (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c)" (( "(") (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 + 7)" (( "(") (binary_expression "local_44 + 7" (identifier "local_44") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4")) (< "<") (number_literal "0x1f3c")) () ")")) (compound_statement "{\n              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);\n              *puVar18 = 0;\n              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;\n              *local_34 = (int)(puVar21 + iVar11 + 0x18);\n              if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }\n                    \n                    \n              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();\n              return pbVar19;\n            }" ({ "{") (expression_statement "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar11") (= "=") (unary_expression "-(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_44 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_44 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_44 + 7) & 0xfffffffc" (call_expression "(uint)(local_44 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 + 7)" (( "(") (binary_expression "local_44 + 7" (identifier "local_44") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);" (assignment_expression "puVar18 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (identifier "puVar18") (= "=") (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000495e4)\n                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000495e4)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000495e4" (* "*") (cast_expression "(code *)PTR_mempcpy_000495e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000495e4"))) () ")")) (argument_list "(puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6)" (( "(") (binary_expression "puVar21 + iVar11 + 0x1c" (binary_expression "puVar21 + iVar11" (identifier "puVar21") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "unaff_s6") (, ",") (binary_expression "(int)pbVar19 - (int)unaff_s6" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")"))))) (; ";")) (expression_statement "*puVar18 = 0;" (assignment_expression "*puVar18 = 0" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar21 + iVar11 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar21 + iVar11 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + iVar11 + 0x18)" (( "(") (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" (identifier "puVar21") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)(puVar21 + iVar11 + 0x18);" (assignment_expression "*local_34 = (int)(puVar21 + iVar11 + 0x18)" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)(puVar21 + iVar11 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar21 + iVar11 + 0x18)" (( "(") (binary_expression "puVar21 + iVar11 + 0x18" (binary_expression "puVar21 + iVar11" (identifier "puVar21") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (local_30 == 0) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" ({ "{") (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00049460" (* "*") (cast_expression "(code *)PTR___assert_fail_00049460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00049460"))) () ")")) (argument_list "(PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,\n                                             0x454,PTR_LAB_00049218 + 0x7d60)" (( "(") (binary_expression "PTR_LAB_00049218 + 0x7a14" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a14")) (, ",") (binary_expression "PTR_LAB_00049218 + 0x7a00" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x454") (, ",") (binary_expression "PTR_LAB_00049218 + 0x7d60" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar19;" (return "return") (identifier "pbVar19") (; ";")) (} "}"))) (if_statement "if (pbVar19[-1] != 0x29) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" (if "if") (parenthesized_expression "(pbVar19[-1] != 0x29)" (( "(") (binary_expression "pbVar19[-1] != 0x29" (subscript_expression "pbVar19[-1]" (identifier "pbVar19") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" ({ "{") (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00049460" (* "*") (cast_expression "(code *)PTR___assert_fail_00049460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00049460"))) () ")")) (argument_list "(PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,\n                                             0x455,PTR_LAB_00049218 + 0x7d60)" (( "(") (binary_expression "PTR_LAB_00049218 + 0x7a24" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a24")) (, ",") (binary_expression "PTR_LAB_00049218 + 0x7a00" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x455") (, ",") (binary_expression "PTR_LAB_00049218 + 0x7d60" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar19;" (return "return") (identifier "pbVar19") (; ";")) (} "}"))) (if_statement "if (0x1f < param_1 - 0x21U) {\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" (if "if") (parenthesized_expression "(0x1f < param_1 - 0x21U)" (( "(") (binary_expression "0x1f < param_1 - 0x21U" (number_literal "0x1f") (< "<") (binary_expression "param_1 - 0x21U" (identifier "param_1") (- "-") (number_literal "0x21U"))) () ")")) (compound_statement "{\n                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);\n                return pbVar19;\n              }" ({ "{") (expression_statement "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60);" (assignment_expression "pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_00049460)\n                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (parenthesized_expression "(*(code *)PTR___assert_fail_00049460)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00049460" (* "*") (cast_expression "(code *)PTR___assert_fail_00049460" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00049460"))) () ")")) (argument_list "(PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,\n                                             0x4ad,PTR_LAB_00049218 + 0x7d60)" (( "(") (binary_expression "PTR_LAB_00049218 + 0x7a38" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a38")) (, ",") (binary_expression "PTR_LAB_00049218 + 0x7a00" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7a00")) (, ",") (number_literal "0x4ad") (, ",") (binary_expression "PTR_LAB_00049218 + 0x7d60" (identifier "PTR_LAB_00049218") (+ "+") (number_literal "0x7d60")) () ")"))))) (; ";")) (return_statement "return pbVar19;" (return "return") (identifier "pbVar19") (; ";")) (} "}"))) (expression_statement "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (* "*") (cast_expression "(int *)(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0)" (( "(") (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4 + 0x7bf0" (binary_expression "PTR_LAB_00049218 +\n                                                            (param_1 - 0x21U) * 4" (identifier "PTR_LAB_00049218") (+ "+") (binary_expression "(param_1 - 0x21U) * 4" (parenthesized_expression "(param_1 - 0x21U)" (( "(") (binary_expression "param_1 - 0x21U" (identifier "param_1") (- "-") (number_literal "0x21U")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x7bf0")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar19;" (return "return") (identifier "pbVar19") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar11 = (int)(char)pbVar19[1];" (assignment_expression "iVar11 = (int)(char)pbVar19[1]" (identifier "iVar11") (= "=") (cast_expression "(int)(char)pbVar19[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar19[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (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"))) (; ";")) (} "}")))) (labeled_statement "joined_r0x0002b91c:\n        pbVar19 = pbVar19 + 1;" (statement_identifier "joined_r0x0002b91c") (: ":") (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (expression_statement "puVar18 = puVar21;" (assignment_expression "puVar18 = puVar21" (identifier "puVar18") (= "=") (identifier "puVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (} "}"))) (labeled_statement "LAB_0002b7b4:\n  if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" (statement_identifier "LAB_0002b7b4") (: ":") (if_statement "if (local_2c == *(byte **)puVar2) {\n    return (byte *)0xffffffff;\n  }" (if "if") (parenthesized_expression "(local_2c == *(byte **)puVar2)" (( "(") (binary_expression "local_2c == *(byte **)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(byte **)puVar2" (* "*") (cast_expression "(byte **)puVar2" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2")))) () ")")) (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 "pcVar29 = FUN_0002bd90;" (assignment_expression "pcVar29 = FUN_0002bd90" (identifier "pcVar29") (= "=") (identifier "FUN_0002bd90")) (; ";")) (expression_statement "pbVar16 = local_2c;" (assignment_expression "pbVar16 = local_2c" (identifier "pbVar16") (= "=") (identifier "local_2c")) (; ";")) (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 "puVar3 = puVar22 + 0x25450;" (assignment_expression "puVar3 = puVar22 + 0x25450" (identifier "puVar3") (= "=") (binary_expression "puVar22 + 0x25450" (identifier "puVar22") (+ "+") (number_literal "0x25450"))) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);" (assignment_expression "puVar5 = *(undefined4 **)(puVar22 + 0x1d86c)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(puVar22 + 0x1d86c)" (* "*") (cast_expression "(undefined4 **)(puVar22 + 0x1d86c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x1d86c)" (( "(") (binary_expression "puVar22 + 0x1d86c" (identifier "puVar22") (+ "+") (number_literal "0x1d86c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar21 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar21 + -8) = auStack_68" (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_68")) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x1c) = unaff_s3;" (assignment_expression "*(undefined **)(puVar21 + -0x1c) = unaff_s3" (pointer_expression "*(undefined **)(puVar21 + -0x1c)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x1c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x1c)" (( "(") (binary_expression "puVar21 + -0x1c" (identifier "puVar21") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x160) = puVar3;" (assignment_expression "*(undefined **)(puVar21 + -0x160) = puVar3" (pointer_expression "*(undefined **)(puVar21 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(code **)(puVar21 + -4) = pcVar29;" (assignment_expression "*(code **)(puVar21 + -4) = pcVar29" (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 "pcVar29")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0xc) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0xc) = pbVar19" (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 "pbVar19")) (; ";")) (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 "*(undefined1 **)(puVar21 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (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) = param_3;" (assignment_expression "*(byte **)(puVar21 + -0x18) = param_3" (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 "param_3")) (; ";")) (expression_statement "*(undefined **)(puVar21 + -0x20) = puVar2;" (assignment_expression "*(undefined **)(puVar21 + -0x20) = puVar2" (pointer_expression "*(undefined **)(puVar21 + -0x20)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x20)" (( "(") (binary_expression "puVar21 + -0x20" (identifier "puVar21") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (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) = puVar5;" (assignment_expression "*(undefined4 **)(puVar21 + -0x144) = puVar5" (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 "puVar5")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x154) = pbVar16 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = pbVar16 + 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 "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar15 = (byte *)(uint)*pbVar16;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar16" (identifier "pbVar15") (= "=") (binary_expression "(byte *)(uint)*pbVar16" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar16"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar21 + -0x2c) = *puVar5" (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 "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "pbVar20 = *(byte **)(puVar22 + 0x1d488);" (assignment_expression "pbVar20 = *(byte **)(puVar22 + 0x1d488)" (identifier "pbVar20") (= "=") (pointer_expression "*(byte **)(puVar22 + 0x1d488)" (* "*") (cast_expression "(byte **)(puVar22 + 0x1d488)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + 0x1d488)" (( "(") (binary_expression "puVar22 + 0x1d488" (identifier "puVar22") (+ "+") (number_literal "0x1d488")) () ")"))))) (; ";")) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" (identifier "pbVar19") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar27 = pbVar12;" (assignment_expression "pbVar27 = pbVar12" (identifier "pbVar27") (= "=") (identifier "pbVar12")) (; ";")) (if_statement "if (pbVar15 != (byte *)0x0) {\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" (if "if") (parenthesized_expression "(pbVar15 != (byte *)0x0)" (( "(") (binary_expression "pbVar15 != (byte *)0x0" (identifier "pbVar15") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar4 = *(uint *)(puVar21 + 0x10);\n    unaff_s1 = uVar4 & 2;\n    param_2 = (byte *)(uVar4 & 0x10);\n    *(uint *)(puVar21 + -0x140) = uVar4 & 5;\n    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);\n    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;\n    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;\n    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;\n    param_3 = pbVar16;\n    unaff_s6 = param_4;\n    do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);\n  }" ({ "{") (expression_statement "uVar4 = *(uint *)(puVar21 + 0x10);" (assignment_expression "uVar4 = *(uint *)(puVar21 + 0x10)" (identifier "uVar4") (= "=") (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 = uVar4 & 2;" (assignment_expression "unaff_s1 = uVar4 & 2" (identifier "unaff_s1") (= "=") (binary_expression "uVar4 & 2" (identifier "uVar4") (& "&") (number_literal "2"))) (; ";")) (expression_statement "param_2 = (byte *)(uVar4 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar4 & 0x10)" (identifier "param_2") (= "=") (cast_expression "(byte *)(uVar4 & 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 & 0x10)" (( "(") (binary_expression "uVar4 & 0x10" (identifier "uVar4") (& "&") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar21 + -0x140) = uVar4 & 5;" (assignment_expression "*(uint *)(puVar21 + -0x140) = uVar4 & 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 "uVar4 & 5" (identifier "uVar4") (& "&") (number_literal "5"))) (; ";")) (expression_statement "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);" (assignment_expression "*(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 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 *)(puVar22 + 0x1d478)" (* "*") (cast_expression "(undefined4 *)(puVar22 + 0x1d478)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x1d478)" (( "(") (binary_expression "puVar22 + 0x1d478" (identifier "puVar22") (+ "+") (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 *)(puVar22 + 0x1d488) + -0x4960;" (assignment_expression "*(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + -0x4960" (pointer_expression "*(int *)(puVar22 + 0x1d488)" (* "*") (cast_expression "(int *)(puVar22 + 0x1d488)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x1d488)" (( "(") (binary_expression "puVar22 + 0x1d488" (identifier "puVar22") (+ "+") (number_literal "0x1d488")) () ")")))) (+ "+") (number_literal "-0x4960"))) (; ";")) (expression_statement "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;" (assignment_expression "*(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 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 *)(puVar22 + 0x1d488) + 0x671c" (pointer_expression "*(int *)(puVar22 + 0x1d488)" (* "*") (cast_expression "(int *)(puVar22 + 0x1d488)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x1d488)" (( "(") (binary_expression "puVar22 + 0x1d488" (identifier "puVar22") (+ "+") (number_literal "0x1d488")) () ")")))) (+ "+") (number_literal "0x671c"))) (; ";")) (expression_statement "param_3 = pbVar16;" (assignment_expression "param_3 = pbVar16" (identifier "param_3") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    } while (pbVar15 != (byte *)0x0);" (do "do") (compound_statement "{\n      pbVar16 = pbVar15;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }\n      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }\n      pbVar7 = (byte *)0x1;\n      pbVar15 = pbVar16;\n      if (pbVar27 == pbVar13) goto LAB_0002c064;\n      pbVar15 = (byte *)(uint)*pbVar27;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }\n      pbVar7 = (byte *)0x1;\n      unaff_s6 = pbVar16;\n      if (pbVar15 != pbVar16) goto LAB_0002c064;\n      param_3 = *(byte **)(puVar21 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar15 = (byte *)(uint)*param_3;\n      pbVar27 = pbVar27 + 1;\n      *(byte **)(puVar21 + -0x154) = param_3 + 1;\n    }" ({ "{") (expression_statement "pbVar16 = pbVar15;" (assignment_expression "pbVar16 = pbVar15" (identifier "pbVar16") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);\n      }" ({ "{") (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" (( "(") (pointer_expression "**(code **)(puVar3 + -0x7d7c)" (* "*") (pointer_expression "*(code **)(puVar3 + -0x7d7c)" (* "*") (cast_expression "(code **)(puVar3 + -0x7d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x7d7c)" (( "(") (binary_expression "puVar3 + -0x7d7c" (identifier "puVar3") (+ "+") (number_literal "-0x7d7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined **)(puVar21 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);" (assignment_expression "pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" (identifier "pbVar16") (= "=") (binary_expression "(byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(*piVar6 + (int)pbVar15 * 4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4 + 3)" (( "(") (binary_expression "*piVar6 + (int)pbVar15 * 4 + 3" (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15")) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" (if "if") (parenthesized_expression "(((uint)(pbVar16 + -0x21) & 0xff) < 0x3c)" (( "(") (binary_expression "((uint)(pbVar16 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar16 + -0x21)" (( "(") (binary_expression "pbVar16 + -0x21" (identifier "pbVar16") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();\n        return pbVar19;\n      }" ({ "{") (expression_statement "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();" (assignment_expression "pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))" (( "(") (pointer_expression "*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" (* "*") (cast_expression "(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4))" (( "(") (binary_expression "puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" (identifier "puVar3") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)" (( "(") (binary_expression "*(int *)(puVar21 + -0x14c) +\n                                                      ((uint)(pbVar16 + -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)(pbVar16 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar16 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar16 + -0x21) & 0xff" (call_expression "(uint)(pbVar16 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar16 + -0x21)" (( "(") (binary_expression "pbVar16 + -0x21" (identifier "pbVar16") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return pbVar19;" (return "return") (identifier "pbVar19") (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbVar15 = pbVar16;" (assignment_expression "pbVar15 = pbVar16" (identifier "pbVar15") (= "=") (identifier "pbVar16")) (; ";")) (if_statement "if (pbVar27 == pbVar13) goto LAB_0002c064;" (if "if") (parenthesized_expression "(pbVar27 == pbVar13)" (( "(") (binary_expression "pbVar27 == pbVar13" (identifier "pbVar27") (== "==") (identifier "pbVar13")) () ")")) (goto_statement "goto LAB_0002c064;" (goto "goto") (statement_identifier "LAB_0002c064") (; ";"))) (expression_statement "pbVar15 = (byte *)(uint)*pbVar27;" (assignment_expression "pbVar15 = (byte *)(uint)*pbVar27" (identifier "pbVar15") (= "=") (binary_expression "(byte *)(uint)*pbVar27" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar27"))) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 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        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();\n        puVar3 = *(undefined **)(puVar21 + -0x160);\n        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);\n      }" ({ "{") (expression_statement "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(puVar3 + -0x7d7c))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar3 + -0x7d7c))()" (parenthesized_expression "(**(code **)(puVar3 + -0x7d7c))" (( "(") (pointer_expression "**(code **)(puVar3 + -0x7d7c)" (* "*") (pointer_expression "*(code **)(puVar3 + -0x7d7c)" (* "*") (cast_expression "(code **)(puVar3 + -0x7d7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x7d7c)" (( "(") (binary_expression "puVar3 + -0x7d7c" (identifier "puVar3") (+ "+") (number_literal "-0x7d7c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar3 = *(undefined **)(puVar21 + -0x160);" (assignment_expression "puVar3 = *(undefined **)(puVar21 + -0x160)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined **)(puVar21 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar21 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + -0x160)" (( "(") (binary_expression "puVar21 + -0x160" (identifier "puVar21") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);" (assignment_expression "pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(*piVar6 + (int)pbVar15 * 4)" (* "*") (cast_expression "(byte **)(*piVar6 + (int)pbVar15 * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar6 + (int)pbVar15 * 4)" (( "(") (binary_expression "*piVar6 + (int)pbVar15 * 4" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "(int)pbVar15 * 4" (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_s6 = pbVar16;" (assignment_expression "unaff_s6 = pbVar16" (identifier "unaff_s6") (= "=") (identifier "pbVar16")) (; ";")) (if_statement "if (pbVar15 != pbVar16) goto LAB_0002c064;" (if "if") (parenthesized_expression "(pbVar15 != pbVar16)" (( "(") (binary_expression "pbVar15 != pbVar16" (identifier "pbVar15") (!= "!=") (identifier "pbVar16")) () ")")) (goto_statement "goto LAB_0002c064;" (goto "goto") (statement_identifier "LAB_0002c064") (; ";"))) (expression_statement "param_3 = *(byte **)(puVar21 + -0x154);" (assignment_expression "param_3 = *(byte **)(puVar21 + -0x154)" (identifier "param_3") (= "=") (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 "pbVar15 = (byte *)(uint)*param_3;" (assignment_expression "pbVar15 = (byte *)(uint)*param_3" (identifier "pbVar15") (= "=") (binary_expression "(byte *)(uint)*param_3" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "param_3"))) (; ";")) (expression_statement "pbVar27 = pbVar27 + 1;" (assignment_expression "pbVar27 = pbVar27 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + 1" (identifier "pbVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar21 + -0x154) = param_3 + 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 "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar15 != (byte *)0x0)" (( "(") (binary_expression "pbVar15 != (byte *)0x0" (identifier "pbVar15") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)0x0;" (assignment_expression "pbVar7 = (byte *)0x0" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pbVar27 != pbVar13) {\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar27 != pbVar13)" (( "(") (binary_expression "pbVar27 != pbVar13" (identifier "pbVar27") (!= "!=") (identifier "pbVar13")) () ")")) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }\n  }" ({ "{") (expression_statement "param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);" (assignment_expression "param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8)" (identifier "param_3") (= "=") (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 (param_3 == (byte *)0x0) {\n      pbVar7 = (byte *)0x1;\n    }\n    else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" (if "if") (parenthesized_expression "(param_3 == (byte *)0x0)" (( "(") (binary_expression "param_3 == (byte *)0x0" (identifier "param_3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar7 = (byte *)0x1;\n    }" ({ "{") (expression_statement "pbVar7 = (byte *)0x1;" (assignment_expression "pbVar7 = (byte *)0x1" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" (else "else") (compound_statement "{\n      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);\n    }" ({ "{") (expression_statement "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);" (assignment_expression "pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)(uint)(*pbVar27 != 0x2f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(*pbVar27 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar27 != 0x2f)" (( "(") (binary_expression "*pbVar27 != 0x2f" (pointer_expression "*pbVar27" (* "*") (identifier "pbVar27")) (!= "!=") (number_literal "0x2f")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0002c064:\n  iVar11 = *(int *)(puVar21 + -0x2c);" (statement_identifier "LAB_0002c064") (: ":") (expression_statement "iVar11 = *(int *)(puVar21 + -0x2c);" (assignment_expression "iVar11 = *(int *)(puVar21 + -0x2c)" (identifier "iVar11") (= "=") (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 (iVar11 == **(int **)(puVar21 + -0x144)) {\n    return pbVar7;\n  }" (if "if") (parenthesized_expression "(iVar11 == **(int **)(puVar21 + -0x144))" (( "(") (binary_expression "iVar11 == **(int **)(puVar21 + -0x144)" (identifier "iVar11") (== "==") (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 pbVar7;\n  }" ({ "{") (return_statement "return pbVar7;" (return "return") (identifier "pbVar7") (; ";")) (} "}"))) (expression_statement "pcVar29 = *(code **)(puVar3 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(puVar3 + -0x7c10)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(puVar3 + -0x7c10)" (* "*") (cast_expression "(code **)(puVar3 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x7c10)" (( "(") (binary_expression "puVar3 + -0x7c10" (identifier "puVar3") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (expression_statement "pcVar30 = gnu_fnmatch;" (assignment_expression "pcVar30 = gnu_fnmatch" (identifier "pcVar30") (= "=") (identifier "gnu_fnmatch")) (; ";")) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" (identifier "puVar18") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "pcVar23 = *(code **)(pcVar29 + 0x1cbc4);" (assignment_expression "pcVar23 = *(code **)(pcVar29 + 0x1cbc4)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar29 + 0x1cbc4)" (* "*") (cast_expression "(code **)(pcVar29 + 0x1cbc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1cbc4)" (( "(") (binary_expression "pcVar29 + 0x1cbc4" (identifier "pcVar29") (+ "+") (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 "piVar6 = *(int **)(pcVar29 + 0x1cc28);" (assignment_expression "piVar6 = *(int **)(pcVar29 + 0x1cc28)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar29 + 0x1cc28)" (* "*") (cast_expression "(int **)(pcVar29 + 0x1cc28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1cc28)" (( "(") (binary_expression "pcVar29 + 0x1cc28" (identifier "pcVar29") (+ "+") (number_literal "0x1cc28")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x180) = pbVar27;" (assignment_expression "*(byte **)(puVar21 + -0x180) = pbVar27" (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 "pbVar27")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x198) = pbVar15;" (assignment_expression "*(byte **)(puVar21 + -0x198) = pbVar15" (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 "pbVar15")) (; ";")) (expression_statement "*(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;" (assignment_expression "*(code **)(puVar21 + -0x1c8) = pcVar29 + 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 "pcVar29 + 0x2480c" (identifier "pcVar29") (+ "+") (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 "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar21 + -0x18c) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar21 + -0x18c)" (* "*") (cast_expression "(undefined1 **)(puVar21 + -0x18c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (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) = param_3;" (assignment_expression "*(byte **)(puVar21 + -400) = param_3" (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 "param_3")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x194) = pbVar13;" (assignment_expression "*(byte **)(puVar21 + -0x194) = pbVar13" (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 "pbVar13")) (; ";")) (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) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1b4) = iVar11" (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 "iVar11")) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1b8) = pbVar12;" (assignment_expression "*(byte **)(puVar21 + -0x1b8) = pbVar12" (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 "pbVar12")) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1a4) = *piVar6;" (assignment_expression "*(int *)(puVar21 + -0x1a4) = *piVar6" (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 "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar11 = (*pcVar23)();" (assignment_expression "iVar11 = (*pcVar23)()" (identifier "iVar11") (= "=") (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 1) {\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }\n  else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar11 == 1)" (( "(") (binary_expression "iVar11 == 1" (identifier "iVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);\n    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);\n    *(byte **)(puVar21 + -0x1d0) = pbVar19;\n    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n    iVar11 = *(int *)(puVar21 + -0x1c8);\n    puVar18 = puVar21 + -0x1e0;\n  }" ({ "{") (labeled_statement "LAB_0002ca44:\n    pbVar12 = *(byte **)(puVar21 + -0x1b8);" (statement_identifier "LAB_0002ca44") (: ":") (expression_statement "pbVar12 = *(byte **)(puVar21 + -0x1b8);" (assignment_expression "pbVar12 = *(byte **)(puVar21 + -0x1b8)" (identifier "pbVar12") (= "=") (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 "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar24 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ca4))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7ca4)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7ca4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ca4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ca4)" (( "(") (binary_expression "iVar24 + -0x7ca4" (identifier "iVar24") (+ "+") (number_literal "-0x7ca4")) () ")"))))) () ")")) (argument_list "(pbVar12)" (( "(") (identifier "pbVar12") () ")")))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar19")) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (identifier "FUN_0002bd90") (argument_list "(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,\n                                   (uint)((int)pbVar19 << 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 "pbVar12") (, ",") (binary_expression "pbVar12 + iVar11" (identifier "pbVar12") (+ "+") (identifier "iVar11")) (, ",") (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar19 << 0x1d)" (( "(") (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar11") (= "=") (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 "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" (identifier "puVar18") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")) (else_clause "else {\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" (else "else") (compound_statement "{\n    puVar14 = puVar21 + -0x1ac;\n    pcVar29 = *(code **)(iVar24 + -0x7ba4);\n    unaff_s5 = puVar21 + -0x1b4;\n    *(undefined4 *)(puVar21 + -0x1ac) = 0;\n    *(undefined4 *)(puVar21 + -0x1a8) = 0;\n    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);\n    pbVar13 = (byte *)(iVar11 + 1);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    uVar31 = 0x129;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) goto LAB_0002ccf0;\n    unaff_s6 = puVar21 + -0x1b8;\n    pbVar12 = unaff_s6;\n    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);\n    pbVar20 = param_3 + 1;\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;\n    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);\n    iVar24 = *(int *)(puVar21 + -0x1c8);\n    if (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }\n    pbVar16 = pbVar13 + (int)pbVar20;\n    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }\n  }" ({ "{") (expression_statement "puVar14 = puVar21 + -0x1ac;" (assignment_expression "puVar14 = puVar21 + -0x1ac" (identifier "puVar14") (= "=") (binary_expression "puVar21 + -0x1ac" (identifier "puVar21") (+ "+") (number_literal "-0x1ac"))) (; ";")) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (number_literal "-0x7ba4")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = puVar21 + -0x1b4;" (assignment_expression "unaff_s5 = puVar21 + -0x1b4" (identifier "unaff_s5") (= "=") (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 "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);" (assignment_expression "iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14)" (identifier "iVar11") (= "=") (call_expression "(*pcVar29)(0,unaff_s5,0,puVar14)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(0,unaff_s5,0,puVar14)" (( "(") (number_literal "0") (, ",") (identifier "unaff_s5") (, ",") (number_literal "0") (, ",") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "pbVar13 = (byte *)(iVar11 + 1);" (assignment_expression "pbVar13 = (byte *)(iVar11 + 1)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(iVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 1)" (( "(") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (pbVar13 == (byte *)0x0) goto LAB_0002ca44;" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7be8)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7be8)" (* "*") (cast_expression "(code **)(iVar24 + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7be8)" (( "(") (binary_expression "iVar24 + -0x7be8" (identifier "iVar24") (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "uVar31 = 0x129;" (assignment_expression "uVar31 = 0x129" (identifier "uVar31") (= "=") (number_literal "0x129")) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 0) goto LAB_0002ccf0;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (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 "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = unaff_s6" (identifier "pbVar12") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" (identifier "param_3") (= "=") (cast_expression "(byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(0,unaff_s6,0,puVar14)" (( "(") (number_literal "0") (, ",") (identifier "unaff_s6") (, ",") (number_literal "0") (, ",") (identifier "puVar14") () ")"))))) (; ";")) (expression_statement "pbVar20 = param_3 + 1;" (assignment_expression "pbVar20 = param_3 + 1" (identifier "pbVar20") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar24 + -0x7be8))(puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7be8))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7be8)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7be8)" (* "*") (cast_expression "(code **)(iVar24 + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7be8)" (( "(") (binary_expression "iVar24 + -0x7be8" (identifier "iVar24") (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 0) {\n      uVar31 = 0x12d;\n      goto LAB_0002ccf0;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (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 "pbVar16 = pbVar13 + (int)pbVar20;" (assignment_expression "pbVar16 = pbVar13 + (int)pbVar20" (identifier "pbVar16") (= "=") (binary_expression "pbVar13 + (int)pbVar20" (identifier "pbVar13") (+ "+") (cast_expression "(int)pbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar20")))) (; ";")) (if_statement "if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }\n    else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" (if "if") (parenthesized_expression "((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16))" (( "(") (binary_expression "(pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)" (parenthesized_expression "(pbVar16 < pbVar13)" (( "(") (binary_expression "pbVar16 < pbVar13" (identifier "pbVar16") (< "<") (identifier "pbVar13")) () ")")) (|| "||") (parenthesized_expression "((byte *)0x3fffffff < pbVar16)" (( "(") (binary_expression "(byte *)0x3fffffff < pbVar16" (cast_expression "(byte *)0x3fffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3fffffff")) (< "<") (identifier "pbVar16")) () ")"))) () ")")) (compound_statement "{\nLAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      *puVar5 = 0xc;\n    }" ({ "{") (labeled_statement "LAB_0002cc10:\n      pbVar16 = (byte *)0xffffffff;" (statement_identifier "LAB_0002cc10") (: ":") (expression_statement "pbVar16 = (byte *)0xffffffff;" (assignment_expression "pbVar16 = (byte *)0xffffffff" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar24 + -0x7cc8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar24 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7cc8)" (( "(") (binary_expression "iVar24 + -0x7cc8" (identifier "iVar24") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar11") (= "=") (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 "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0xc")) (; ";")) (} "}")) (else_clause "else if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" (else "else") (if_statement "if (pbVar16 < (byte *)0x7d0) {\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }\n    else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" (if "if") (parenthesized_expression "(pbVar16 < (byte *)0x7d0)" (( "(") (binary_expression "pbVar16 < (byte *)0x7d0" (identifier "pbVar16") (< "<") (cast_expression "(byte *)0x7d0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d0"))) () ")")) (compound_statement "{\n      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);\n      puVar18 = puVar21 + iVar10 + -0x1c8;\n      pbVar15 = puVar18 + (int)pbVar13 * 4;\n      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }\n      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      unaff_s5 = puVar18;\n      puVar18 = puVar21 + iVar10 + -0x1e0;\n    }" ({ "{") (expression_statement "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8)" (identifier "iVar10") (= "=") (unary_expression "-((int)pbVar16 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)pbVar16 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)pbVar16 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar16 * 4 + 7U" (binary_expression "(int)pbVar16 * 4" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1c8;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1c8" (identifier "puVar18") (= "=") (binary_expression "puVar21 + iVar10 + -0x1c8" (binary_expression "puVar21 + iVar10" (identifier "puVar21") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-0x1c8"))) (; ";")) (expression_statement "pbVar15 = puVar18 + (int)pbVar13 * 4;" (assignment_expression "pbVar15 = puVar18 + (int)pbVar13 * 4" (identifier "pbVar15") (= "=") (binary_expression "puVar18 + (int)pbVar13 * 4" (identifier "puVar18") (+ "+") (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(puVar18,unaff_s5,pbVar13,puVar14)" (( "(") (identifier "puVar18") (, ",") (identifier "unaff_s5") (, ",") (identifier "pbVar13") (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 0) {\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );\n      }" ({ "{") (labeled_statement "LAB_0002cd10:\n        do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" (statement_identifier "LAB_0002cd10") (: ":") (do_statement "do {\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        } while( true );" (do "do") (compound_statement "{\n          uVar31 = 0x147;\nLAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);\n        }" ({ "{") (expression_statement "uVar31 = 0x147;" (assignment_expression "uVar31 = 0x147" (identifier "uVar31") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_0002ccf0:\n          (**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" (statement_identifier "LAB_0002ccf0") (: ":") (expression_statement "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);" (call_expression "(**(code **)(iVar24 + -0x7d80))\n                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d80))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7d80)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7d80)" (* "*") (cast_expression "(code **)(iVar24 + -0x7d80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7d80)" (( "(") (binary_expression "iVar24 + -0x7d80" (identifier "iVar24") (+ "+") (number_literal "-0x7d80")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,\n                     *(int *)(iVar24 + -0x7fc8) + 0x7d78)" (( "(") (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a70" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar24 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + -0x7fc8)" (( "(") (binary_expression "iVar24 + -0x7fc8" (identifier "iVar24") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a70")) (, ",") (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7a60" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar24 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + -0x7fc8)" (( "(") (binary_expression "iVar24 + -0x7fc8" (identifier "iVar24") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7a60")) (, ",") (identifier "uVar31") (, ",") (binary_expression "*(int *)(iVar24 + -0x7fc8) + 0x7d78" (pointer_expression "*(int *)(iVar24 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar24 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + -0x7fc8)" (( "(") (binary_expression "iVar24 + -0x7fc8" (identifier "iVar24") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x7d78")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(**(code **)(iVar24 + -0x7ba4))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7ba4)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (number_literal "-0x7ba4")) () ")"))))) () ")")) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" (( "(") (identifier "pbVar15") (, ",") (identifier "unaff_s6") (, ",") (identifier "pbVar20") (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19" (pointer_expression "*(byte **)(puVar21 + iVar10 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar21 + iVar10 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + iVar10 + -0x1d0)" (( "(") (binary_expression "puVar21 + iVar10 + -0x1d0" (binary_expression "puVar21 + iVar10" (identifier "puVar21") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" (identifier "pbVar12") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (identifier "FUN_0002aaa0") (argument_list "(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,\n                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar18") (, ",") (identifier "pbVar15") (, ",") (binary_expression "pbVar15 + (int)param_3 * 4" (identifier "pbVar15") (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar19 << 0x1d)" (( "(") (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar11") (= "=") (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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" (identifier "pbVar13") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "unaff_s5 = puVar18;" (assignment_expression "unaff_s5 = puVar18" (identifier "unaff_s5") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "puVar18 = puVar21 + iVar10 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + iVar10 + -0x1e0" (identifier "puVar18") (= "=") (binary_expression "puVar21 + iVar10 + -0x1e0" (binary_expression "puVar21 + iVar10" (identifier "puVar21") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")) (else_clause "else {\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" (else "else") (compound_statement "{\n      iVar11 = (**(code **)(iVar24 + -0x7c80))();\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cc10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(int *)(puVar21 + -0x1bc) = iVar11;\n      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);\n      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);\n      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);\n      iVar24 = *(int *)(puVar21 + -0x1c8);\n      if (iVar11 == 0) goto LAB_0002cd10;\n      pcVar29 = *(code **)(iVar24 + -0x7ba4);\n      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);\n      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);\n      *(byte **)(puVar21 + -0x1d0) = pbVar19;\n      pbVar12 = pbVar15;\n      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );\n      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));\n      iVar11 = *(int *)(puVar21 + -0x1c8);\n      pbVar13 = pbVar15;\n      puVar18 = puVar21 + -0x1e0;\n    }" ({ "{") (expression_statement "iVar11 = (**(code **)(iVar24 + -0x7c80))();" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7c80))()" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar24 + -0x7c80))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7c80))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7c80)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7c80)" (* "*") (cast_expression "(code **)(iVar24 + -0x7c80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7c80)" (( "(") (binary_expression "iVar24 + -0x7c80" (identifier "iVar24") (+ "+") (number_literal "-0x7c80")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 0) goto LAB_0002cc10;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cc10;" (goto "goto") (statement_identifier "LAB_0002cc10") (; ";"))) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (number_literal "-0x7ba4")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar21 + -0x1bc) = iVar11;" (assignment_expression "*(int *)(puVar21 + -0x1bc) = iVar11" (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 "iVar11")) (; ";")) (expression_statement "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);" (assignment_expression "pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(iVar11 + (int)pbVar13 * 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + (int)pbVar13 * 4)" (( "(") (binary_expression "iVar11 + (int)pbVar13 * 4" (identifier "iVar11") (+ "+") (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);" (call_expression "(*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(iVar11,unaff_s5,pbVar13,puVar14)" (( "(") (identifier "iVar11") (, ",") (identifier "unaff_s5") (, ",") (identifier "pbVar13") (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14)" (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 "(puVar14)" (( "(") (identifier "puVar14") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar24") (= "=") (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 (iVar11 == 0) goto LAB_0002cd10;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cd10;" (goto "goto") (statement_identifier "LAB_0002cd10") (; ";"))) (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7ba4);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7ba4)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar24 + -0x7ba4)" (* "*") (cast_expression "(code **)(iVar24 + -0x7ba4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7ba4)" (( "(") (binary_expression "iVar24 + -0x7ba4" (identifier "iVar24") (+ "+") (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 "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);" (call_expression "(*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(pbVar15,unaff_s6,pbVar20,puVar14)" (( "(") (identifier "pbVar15") (, ",") (identifier "unaff_s6") (, ",") (identifier "pbVar20") (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar21 + -0x1d0) = pbVar19;" (assignment_expression "*(byte **)(puVar21 + -0x1d0) = pbVar19" (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 "pbVar19")) (; ";")) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" (identifier "pbVar12") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    );" (assignment_expression "pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" (identifier "FUN_0002aaa0") (argument_list "(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,\n                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f\n                                    )" (( "(") (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 "pbVar15") (, ",") (binary_expression "pbVar15 + (int)param_3 * 4" (identifier "pbVar15") (+ "+") (binary_expression "(int)param_3 * 4" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (* "*") (number_literal "4"))) (, ",") (binary_expression "(uint)((int)pbVar19 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar19 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar19 << 0x1d)" (( "(") (binary_expression "(int)pbVar19 << 0x1d" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (<< "<<") (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 "iVar11 = *(int *)(puVar21 + -0x1c8);" (assignment_expression "iVar11 = *(int *)(puVar21 + -0x1c8)" (identifier "iVar11") (= "=") (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 "pbVar13 = pbVar15;" (assignment_expression "pbVar13 = pbVar15" (identifier "pbVar13") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "puVar18 = puVar21 + -0x1e0;" (assignment_expression "puVar18 = puVar21 + -0x1e0" (identifier "puVar18") (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (} "}")))))) (} "}")))) (expression_statement "iVar24 = *(int *)(puVar21 + -0x1a4);" (assignment_expression "iVar24 = *(int *)(puVar21 + -0x1a4)" (identifier "iVar24") (= "=") (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 "pcVar29 = *(code **)(iVar11 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c10)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7c10)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c10)" (( "(") (binary_expression "iVar11 + -0x7c10" (identifier "iVar11") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (if_statement "if (iVar24 == *piVar6) {\n    return pbVar16;\n  }" (if "if") (parenthesized_expression "(iVar24 == *piVar6)" (( "(") (binary_expression "iVar24 == *piVar6" (identifier "iVar24") (== "==") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (compound_statement "{\n    return pbVar16;\n  }" ({ "{") (return_statement "return pbVar16;" (return "return") (identifier "pbVar16") (; ";")) (} "}"))) (expression_statement "pcVar30 = rpl_getcwd;" (assignment_expression "pcVar30 = rpl_getcwd" (identifier "pcVar30") (= "=") (identifier "rpl_getcwd")) (; ";")) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar23 = pcVar29 + 0x244c0;" (assignment_expression "pcVar23 = pcVar29 + 0x244c0" (identifier "pcVar23") (= "=") (binary_expression "pcVar29 + 0x244c0" (identifier "pcVar29") (+ "+") (number_literal "0x244c0"))) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);" (assignment_expression "puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(pcVar29 + 0x1c8dc)" (* "*") (cast_expression "(undefined4 **)(pcVar29 + 0x1c8dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1c8dc)" (( "(") (binary_expression "pcVar29 + 0x1c8dc" (identifier "pcVar29") (+ "+") (number_literal "0x1c8dc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(puVar18 + -0xf4) = puVar5;" (assignment_expression "*(undefined4 **)(puVar18 + -0xf4) = puVar5" (pointer_expression "*(undefined4 **)(puVar18 + -0xf4)" (* "*") (cast_expression "(undefined4 **)(puVar18 + -0xf4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xf4)" (( "(") (binary_expression "puVar18 + -0xf4" (identifier "puVar18") (+ "+") (number_literal "-0xf4")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*(code **)(puVar18 + -0x110) = pcVar23;" (assignment_expression "*(code **)(puVar18 + -0x110) = pcVar23" (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")")))) (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "*(code **)(puVar18 + -4) = pcVar30;" (assignment_expression "*(code **)(puVar18 + -4) = pcVar30" (pointer_expression "*(code **)(puVar18 + -4)" (* "*") (cast_expression "(code **)(puVar18 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar30")) (; ";")) (expression_statement "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;" (assignment_expression "*(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0" (pointer_expression "*(undefined1 **)(puVar18 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar18 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar21 + -0x1e0" (identifier "puVar21") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "*(byte **)(puVar18 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar18 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar18 + -0xc)" (* "*") (cast_expression "(byte **)(puVar18 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xc)" (( "(") (binary_expression "puVar18 + -0xc" (identifier "puVar18") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar18 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar18 + -0x10)" (* "*") (cast_expression "(byte **)(puVar18 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x10)" (( "(") (binary_expression "puVar18 + -0x10" (identifier "puVar18") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(undefined1 **)(puVar18 + -0x14) = unaff_s5;" (assignment_expression "*(undefined1 **)(puVar18 + -0x14) = unaff_s5" (pointer_expression "*(undefined1 **)(puVar18 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar18 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x14)" (( "(") (binary_expression "puVar18 + -0x14" (identifier "puVar18") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar18 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar18 + -0x18)" (* "*") (cast_expression "(byte **)(puVar18 + -0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x18)" (( "(") (binary_expression "puVar18 + -0x18" (identifier "puVar18") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x1c) = pbVar13;" (assignment_expression "*(byte **)(puVar18 + -0x1c) = pbVar13" (pointer_expression "*(byte **)(puVar18 + -0x1c)" (* "*") (cast_expression "(byte **)(puVar18 + -0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x1c)" (( "(") (binary_expression "puVar18 + -0x1c" (identifier "puVar18") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x20) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x20) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x20)" (* "*") (cast_expression "(byte **)(puVar18 + -0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x20)" (( "(") (binary_expression "puVar18 + -0x20" (identifier "puVar18") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "*(int **)(puVar18 + -0x24) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x24) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x24)" (* "*") (cast_expression "(int **)(puVar18 + -0x24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x24)" (( "(") (binary_expression "puVar18 + -0x24" (identifier "puVar18") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x28) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x28) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x28)" (* "*") (cast_expression "(byte **)(puVar18 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x28)" (( "(") (binary_expression "puVar18 + -0x28" (identifier "puVar18") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "*(byte **)(puVar18 + 4) = pbVar12;" (assignment_expression "*(byte **)(puVar18 + 4) = pbVar12" (pointer_expression "*(byte **)(puVar18 + 4)" (* "*") (cast_expression "(byte **)(puVar18 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x100) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x100) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x2c)" (( "(") (binary_expression "puVar18 + -0x2c" (identifier "puVar18") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (if_statement "if (pbVar12 == (byte *)0x0) {\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }\n  else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" (if "if") (parenthesized_expression "(pbVar12 == (byte *)0x0)" (( "(") (binary_expression "pbVar12 == (byte *)0x0" (identifier "pbVar12") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }\n    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n    *puVar5 = 0x16;\n  }" ({ "{") (if_statement "if (iVar24 == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;\nLAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n      *(int *)(puVar18 + -0x108) = iVar11;\n      if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }\n      goto LAB_0002cdbc;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = 0x1000;" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = 0x1000" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (number_literal "0x1000")) (; ";")) (labeled_statement "LAB_0002cd88:\n      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" (statement_identifier "LAB_0002cd88") (: ":") (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8))" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c840))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x1c840)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x1c840)" (* "*") (cast_expression "(code **)(pcVar29 + 0x1c840)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1c840)" (( "(") (binary_expression "pcVar29 + 0x1c840" (identifier "pcVar29") (+ "+") (number_literal "0x1c840")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar18 + -0xf8))" (( "(") (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) () ")")))) (; ";"))) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 == 0) {\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar9 = *(int **)(puVar18 + -0xf4);\n        goto LAB_0002d15c;\n      }" ({ "{") (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar18 + -0xf4)" (* "*") (cast_expression "(int **)(puVar18 + -0xf4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xf4)" (( "(") (binary_expression "puVar18 + -0xf4" (identifier "puVar18") (+ "+") (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 "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar29 + 0x1c7f8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c7f8))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x1c7f8)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x1c7f8)" (* "*") (cast_expression "(code **)(pcVar29 + 0x1c7f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1c7f8)" (( "(") (binary_expression "pcVar29 + 0x1c7f8" (identifier "pcVar29") (+ "+") (number_literal "0x1c7f8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar5 = 0x16;" (assignment_expression "*puVar5 = 0x16" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x16")) (; ";")) (} "}")) (else_clause "else {\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" (else "else") (compound_statement "{\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }\n    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);\nLAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);\n    puVar21 = puVar18 + -0xd0;\n    iVar10 = *(int *)(puVar18 + -0xf8);\n    pcVar29 = *(code **)(pcVar23 + -0x7d60);\n    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);\n    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;\n    iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n    iVar25 = *(int *)(puVar18 + -0x110);\n    if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }\nLAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();\n    pbVar16 = *(byte **)pbVar19;\n    pcVar23 = *(code **)(puVar18 + -0x110);\n    if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }\nLAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;\n    *(undefined4 *)(puVar18 + -0x108) = 0;\n  }" ({ "{") (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);\n      goto LAB_0002cd88;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002cd88;" (goto "goto") (statement_identifier "LAB_0002cd88") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100)" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (labeled_statement "LAB_0002cdbc:\n    iVar11 = *(int *)(puVar18 + -0x108);" (statement_identifier "LAB_0002cdbc") (: ":") (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")"))))) (; ";"))) (expression_statement "puVar21 = puVar18 + -0xd0;" (assignment_expression "puVar21 = puVar18 + -0xd0" (identifier "puVar21") (= "=") (binary_expression "puVar18 + -0xd0" (identifier "puVar18") (+ "+") (number_literal "-0xd0"))) (; ";")) (expression_statement "iVar10 = *(int *)(puVar18 + -0xf8);" (assignment_expression "iVar10 = *(int *)(puVar18 + -0xf8)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar18 + -0xf8)" (* "*") (cast_expression "(int *)(puVar18 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")"))))) (; ";")) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d60);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d60)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7d60)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7d60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7d60)" (( "(") (binary_expression "pcVar23 + -0x7d60" (identifier "pcVar23") (+ "+") (number_literal "-0x7d60")) () ")"))))) (; ";")) (expression_statement "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);" (assignment_expression "pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar23 + -0x7fc8) + 0x6104)" (( "(") (binary_expression "*(int *)(pcVar23 + -0x7fc8) + 0x6104" (pointer_expression "*(int *)(pcVar23 + -0x7fc8)" (* "*") (cast_expression "(int *)(pcVar23 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + -0x7fc8)" (( "(") (binary_expression "pcVar23 + -0x7fc8" (identifier "pcVar23") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x6104")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar11 + iVar10 + -1) = 0;" (assignment_expression "*(undefined1 *)(iVar11 + iVar10 + -1) = 0" (pointer_expression "*(undefined1 *)(iVar11 + iVar10 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar11 + iVar10 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar10 + -1)" (( "(") (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" (identifier "iVar11") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" (identifier "iVar24") (= "=") (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(3,pbVar12,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar12") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar24) {\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" (if "if") (parenthesized_expression "(-1 < iVar24)" (( "(") (binary_expression "-1 < iVar24" (number_literal "-1") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n      iVar24 = *(int *)(iVar25 + -0x7fc8);\n      pcVar29 = *(code **)(iVar25 + -0x7d60);\n      iVar28 = *(int *)(puVar18 + -0xc0);\n      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);\n      pbVar12 = (byte *)(iVar24 + 0x6154);\n      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);\n      iVar24 = (*pcVar29)(3,pbVar12,puVar21);\n      iVar25 = *(int *)(puVar18 + -0x110);\n      if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }\n    }" ({ "{") (expression_statement "iVar24 = *(int *)(iVar25 + -0x7fc8);" (assignment_expression "iVar24 = *(int *)(iVar25 + -0x7fc8)" (identifier "iVar24") (= "=") (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 "pcVar29 = *(code **)(iVar25 + -0x7d60);" (assignment_expression "pcVar29 = *(code **)(iVar25 + -0x7d60)" (identifier "pcVar29") (= "=") (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 "iVar28 = *(int *)(puVar18 + -0xc0);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xc0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar18 + -0xc0)" (* "*") (cast_expression "(int *)(puVar18 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc0)" (( "(") (binary_expression "puVar18 + -0xc0" (identifier "puVar18") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd0)" (( "(") (binary_expression "puVar18 + -0xd0" (identifier "puVar18") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "pbVar12 = (byte *)(iVar24 + 0x6154);" (assignment_expression "pbVar12 = (byte *)(iVar24 + 0x6154)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(iVar24 + 0x6154)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x6154)" (( "(") (binary_expression "iVar24 + 0x6154" (identifier "iVar24") (+ "+") (number_literal "0x6154")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xfc)" (( "(") (binary_expression "puVar18 + -0xfc" (identifier "puVar18") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xbc)" (( "(") (binary_expression "puVar18 + -0xbc" (identifier "puVar18") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "iVar24 = (*pcVar29)(3,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar12,puVar21)" (identifier "iVar24") (= "=") (call_expression "(*pcVar29)(3,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(3,pbVar12,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar12") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (-1 < iVar24) {\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" (if "if") (parenthesized_expression "(-1 < iVar24)" (( "(") (binary_expression "-1 < iVar24" (number_literal "-1") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n        piVar6 = (int *)0x0;\n        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;\n        pbVar13 = (byte *)0xffffff9c;\n        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);\n        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);\n        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);\n        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;\nLAB_0002ce58:\n        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }\n        pbVar15 = *(byte **)(puVar18 + -0xe8);\n        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);\n        if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }\n        pbVar15 = pbVar13;\n        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);\n        iVar24 = *(int *)(puVar18 + -0x110);\n        if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }\n        (**(code **)(iVar11 + -0x7d68))(pbVar13);\n        pcVar23 = *(code **)(puVar18 + -0x110);\n        pbVar12 = pbVar15;\n        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;\n        pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n        goto LAB_0002d1e4;\n      }" ({ "{") (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" (identifier "piVar6") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar11 + iVar10 + -1" (binary_expression "iVar11 + iVar10" (identifier "iVar11") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar13 = (byte *)0xffffff9c;" (assignment_expression "pbVar13 = (byte *)0xffffff9c" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0xffffff9c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffff9c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xec)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xec)" (( "(") (binary_expression "puVar18 + -0xec" (identifier "puVar18") (+ "+") (number_literal "-0xec")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd0)" (( "(") (binary_expression "puVar18 + -0xd0" (identifier "puVar18") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xe4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe4)" (( "(") (binary_expression "puVar18 + -0xe4" (identifier "puVar18") (+ "+") (number_literal "-0xe4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc0)" (( "(") (binary_expression "puVar18 + -0xc0" (identifier "puVar18") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xdc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xdc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xdc)" (( "(") (binary_expression "puVar18 + -0xdc" (identifier "puVar18") (+ "+") (number_literal "-0xdc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xbc)" (( "(") (binary_expression "puVar18 + -0xbc" (identifier "puVar18") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;" (assignment_expression "*(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630" (pointer_expression "*(int *)(puVar18 + -0xe8)" (* "*") (cast_expression "(int *)(puVar18 + -0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe8)" (( "(") (binary_expression "puVar18 + -0xe8" (identifier "puVar18") (+ "+") (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 *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" (statement_identifier "LAB_0002ce58") (: ":") (if_statement "if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))) {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }\n        else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" (if "if") (parenthesized_expression "((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4)))" (( "(") (binary_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&\n           (iVar28 == *(int *)(puVar18 + -0xe4))" (parenthesized_expression "(*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec))" (( "(") (binary_expression "*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)" (pointer_expression "*(int *)(puVar18 + -0x104)" (* "*") (cast_expression "(int *)(puVar18 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar18 + -0xec)" (* "*") (cast_expression "(int *)(puVar18 + -0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xec)" (( "(") (binary_expression "puVar18 + -0xec" (identifier "puVar18") (+ "+") (number_literal "-0xec")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar28 == *(int *)(puVar18 + -0xe4))" (( "(") (binary_expression "iVar28 == *(int *)(puVar18 + -0xe4)" (identifier "iVar28") (== "==") (pointer_expression "*(int *)(puVar18 + -0xe4)" (* "*") (cast_expression "(int *)(puVar18 + -0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe4)" (( "(") (binary_expression "puVar18 + -0xe4" (identifier "puVar18") (+ "+") (number_literal "-0xe4")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }\n        }" ({ "{") (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(code **)(iVar25 + -0x7cac)" (identifier "pcVar29") (= "=") (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 *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc))" (( "(") (binary_expression "*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)" (pointer_expression "*(int *)(puVar18 + -0xfc)" (* "*") (cast_expression "(int *)(puVar18 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xfc)" (( "(") (binary_expression "puVar18 + -0xfc" (identifier "puVar18") (+ "+") (number_literal "-0xfc")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar18 + -0xdc)" (* "*") (cast_expression "(int *)(puVar18 + -0xdc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xdc)" (( "(") (binary_expression "puVar18 + -0xdc" (identifier "puVar18") (+ "+") (number_literal "-0xdc")) () ")"))))) () ")")) (compound_statement "{\n            if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }\n            iVar11 = *(int *)(puVar18 + -0xe0);\n            if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }\n            pbVar12 = *(byte **)(puVar18 + -0xe0);\n            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);\n            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n            if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }\n            iVar11 = *(int *)(puVar18 + -0x100);\n            if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }\n            *(int *)(puVar18 + -0x108) = iVar11;\n            goto LAB_0002d158;\n          }" ({ "{") (if_statement "if (piVar6 != (int *)0x0) {\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);\n              iVar25 = *(int *)(puVar18 + -0x110);\n              if (iVar11 != 0) goto LAB_0002d19c;\n            }" ({ "{") (expression_statement "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar25 + -0x7d6c))(piVar6)" (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 "(piVar6)" (( "(") (identifier "piVar6") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_0002d19c;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d19c;" (goto "goto") (statement_identifier "LAB_0002d19c") (; ";"))) (} "}"))) (expression_statement "iVar11 = *(int *)(puVar18 + -0xe0);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0xe0)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1)" (( "(") (binary_expression "*(int *)(puVar18 + -0xe0) ==\n                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (== "==") (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1" (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar18 + -0xf8)" (* "*") (cast_expression "(int *)(puVar18 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")"))))) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);\n              *(undefined1 *)(iVar11 + -1) = 0x2f;\n            }" ({ "{") (expression_statement "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);" (assignment_expression "*(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1)" (pointer_expression "*(undefined1 **)(puVar18 + -0xe0)" (* "*") (cast_expression "(undefined1 **)(puVar18 + -0xe0)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (cast_expression "(undefined1 *)(iVar11 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar11 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (} "}"))) (expression_statement "pbVar12 = *(byte **)(puVar18 + -0xe0);" (assignment_expression "pbVar12 = *(byte **)(puVar18 + -0xe0)" (identifier "pbVar12") (= "=") (pointer_expression "*(byte **)(puVar18 + -0xe0)" (* "*") (cast_expression "(byte **)(puVar18 + -0xe0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")"))))) (; ";")) (expression_statement "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12);" (assignment_expression "pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12)" (( "(") (binary_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -\n                              (int)pbVar12" (parenthesized_expression "(*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8))" (( "(") (binary_expression "*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)" (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (+ "+") (pointer_expression "*(int *)(puVar18 + -0xf8)" (* "*") (cast_expression "(int *)(puVar18 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")"))))) () ")")) (- "-") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);" (call_expression "(**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16)" (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 *)(puVar18 + -0x108),pbVar12,pbVar16)" (( "(") (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (, ",") (identifier "pbVar12") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar18 + 4) == 0) {\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + 4) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + 4) == 0" (pointer_expression "*(int *)(puVar18 + 4)" (* "*") (cast_expression "(int *)(puVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar12 = pbVar16;\n              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));\n              pcVar23 = *(code **)(puVar18 + -0x110);\n              *(undefined4 *)(puVar18 + -0x100) = uVar31;\n            }" ({ "{") (expression_statement "pbVar12 = pbVar16;" (assignment_expression "pbVar12 = pbVar16" (identifier "pbVar12") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" (identifier "uVar31") (= "=") (call_expression "(**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(**(code **)(pcVar23 + -0x7c78))" (( "(") (pointer_expression "**(code **)(pcVar23 + -0x7c78)" (* "*") (pointer_expression "*(code **)(pcVar23 + -0x7c78)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7c78)" (( "(") (binary_expression "pcVar23 + -0x7c78" (identifier "pcVar23") (+ "+") (number_literal "-0x7c78")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x100) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0x100) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0x100)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(puVar18 + -0x100);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x100)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar11 = *(int *)(puVar18 + -0x108);\n            }" ({ "{") (expression_statement "iVar11 = *(int *)(puVar18 + -0x108);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x108)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)(puVar18 + -0x108) = iVar11;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar11" (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (goto_statement "goto LAB_0002d158;" (goto "goto") (statement_identifier "LAB_0002d158") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" (else "else") (compound_statement "{\n          pcVar29 = *(code **)(iVar25 + -0x7cac);\n        }" ({ "{") (expression_statement "pcVar29 = *(code **)(iVar25 + -0x7cac);" (assignment_expression "pcVar29 = *(code **)(iVar25 + -0x7cac)" (identifier "pcVar29") (= "=") (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 "pbVar15 = *(byte **)(puVar18 + -0xe8);" (assignment_expression "pbVar15 = *(byte **)(puVar18 + -0xe8)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(puVar18 + -0xe8)" (* "*") (cast_expression "(byte **)(puVar18 + -0xe8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xe8)" (( "(") (binary_expression "puVar18 + -0xe8" (identifier "puVar18") (+ "+") (number_literal "-0xe8")) () ")"))))) (; ";")) (expression_statement "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);" (assignment_expression "pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(*pcVar29)(pbVar13,pbVar15,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar29)(pbVar13,pbVar15,0)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(pbVar13,pbVar15,0)" (( "(") (identifier "pbVar13") (, ",") (identifier "pbVar15") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((int)pbVar13 < 0) {\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" (if "if") (parenthesized_expression "((int)pbVar13 < 0)" (( "(") (binary_expression "(int)pbVar13 < 0" (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n          pcVar23 = *(code **)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }\n          pcVar29 = *(code **)(pcVar23 + -0x7bd8);\n          pbVar12 = pbVar15;\n          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;\n          goto LAB_0002d150;\n        }" ({ "{") (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar29 = *(code **)(pcVar23 + -0x7d6c);\nLAB_0002d138:\n            (*pcVar29)(piVar6);\n            pcVar23 = *(code **)(puVar18 + -0x110);\n          }" ({ "{") (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7d6c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7d6c)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7d6c)" (( "(") (binary_expression "pcVar23 + -0x7d6c" (identifier "pcVar23") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d138:\n            (*pcVar29)(piVar6);" (statement_identifier "LAB_0002d138") (: ":") (expression_statement "(*pcVar29)(piVar6);" (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";"))) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7bd8)" (( "(") (binary_expression "pcVar23 + -0x7bd8" (identifier "pcVar23") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" (identifier "pbVar12") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (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 "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" (identifier "pbVar15") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);" (assignment_expression "iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7c40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7c40)" (( "(") (binary_expression "*(int *)(puVar18 + -0x110) + -0x7c40" (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7c40")) () ")"))))) () ")")) (argument_list "(3,pbVar13,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar13") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }\n        else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }\n          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);\n          iVar24 = *(int *)(puVar18 + -0x110);\n          if (iVar11 == 0) goto LAB_0002cec4;\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\nLAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;\n        }" ({ "{") (if_statement "if (piVar6 == (int *)0x0) {\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);\n            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);\n            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);\n            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);\n            piVar6 = (int *)(*pcVar29)(pbVar13);\n            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();\n            iVar11 = *(int *)(puVar18 + -0x110);\n            if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }\n            goto LAB_0002d208;\n          }" ({ "{") (labeled_statement "LAB_0002cec4:\n            pcVar29 = *(code **)(iVar24 + -0x7d1c);" (statement_identifier "LAB_0002cec4") (: ":") (expression_statement "pcVar29 = *(code **)(iVar24 + -0x7d1c);" (assignment_expression "pcVar29 = *(code **)(iVar24 + -0x7d1c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar24 + -0x7d1c)" (* "*") (cast_expression "(code **)(iVar24 + -0x7d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7d1c)" (( "(") (binary_expression "iVar24 + -0x7d1c" (identifier "iVar24") (+ "+") (number_literal "-0x7d1c")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf0)" (( "(") (binary_expression "puVar18 + -0xf0" (identifier "puVar18") (+ "+") (number_literal "-0xf0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xd0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd0)" (( "(") (binary_expression "puVar18 + -0xd0" (identifier "puVar18") (+ "+") (number_literal "-0xd0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd8)" (( "(") (binary_expression "puVar18 + -0xd8" (identifier "puVar18") (+ "+") (number_literal "-0xd8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc0)" (( "(") (binary_expression "puVar18 + -0xc0" (identifier "puVar18") (+ "+") (number_literal "-0xc0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);" (assignment_expression "*(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc)" (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd4)" (( "(") (binary_expression "puVar18 + -0xd4" (identifier "puVar18") (+ "+") (number_literal "-0xd4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xbc)" (( "(") (binary_expression "puVar18 + -0xbc" (identifier "puVar18") (+ "+") (number_literal "-0xbc")) () ")"))))) (; ";")) (expression_statement "piVar6 = (int *)(*pcVar29)(pbVar13);" (assignment_expression "piVar6 = (int *)(*pcVar29)(pbVar13)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*pcVar29)(pbVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar29)(pbVar13)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(pbVar13)" (( "(") (identifier "pbVar13") () ")"))))) (; ";")) (expression_statement "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))()" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar18 + -0x110) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;\n              goto LAB_0002cf10;\n            }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              bVar1 = true;\nLAB_0002cf10:\n              pcVar29 = *(code **)(iVar11 + -0x7d38);\nLAB_0002cf18:\n              pbVar19[0] = 0;\n              pbVar19[1] = 0;\n              pbVar19[2] = 0;\n              pbVar19[3] = 0;\n              piVar9 = (int *)(*pcVar29)(piVar6);\n              iVar11 = *(int *)(puVar18 + -0x110);\n              if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }\n              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;\nLAB_0002d0e0:\n              if (*(char *)(piVar9 + 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              pcVar29 = *(code **)(iVar11 + -0x7d38);" (statement_identifier "LAB_0002cf10") (: ":") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d38)" (( "(") (binary_expression "iVar11 + -0x7d38" (identifier "iVar11") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002cf18:\n              pbVar19[0] = 0;" (statement_identifier "LAB_0002cf18") (: ":") (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" (identifier "pbVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[3] = 0;" (assignment_expression "pbVar19[3] = 0" (subscript_expression "pbVar19[3]" (identifier "pbVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar9 = (int *)(*pcVar29)(piVar6);" (assignment_expression "piVar9 = (int *)(*pcVar29)(piVar6)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*pcVar29)(piVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar29)(piVar6)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar9 == (int *)0x0) {\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbVar16 = *(byte **)pbVar19;\n                pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }\n                goto LAB_0002d138;\n              }" ({ "{") (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";")) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d6c)" (( "(") (binary_expression "iVar11 + -0x7d6c" (identifier "iVar11") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (if_statement "if (pbVar16 == (byte *)0x0) {\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x0)" (( "(") (binary_expression "pbVar16 == (byte *)0x0" (identifier "pbVar16") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }\n                  (**(code **)(iVar11 + -0x7d90))(piVar6);\n                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);\n                  iVar11 = *(int *)(puVar18 + -0x110);\n                  if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }\n                  pbVar16 = *(byte **)pbVar19;\n                  pcVar29 = *(code **)(iVar11 + -0x7d6c);\n                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;\n                }" ({ "{") (if_statement "if (!bVar1) {\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\nLAB_0002d128:\n                    pbVar16 = (byte *)0x2;\n                    pbVar19[0] = 0;\n                    pbVar19[1] = 0;\n                    pbVar19[2] = 0;\n                    pbVar19[3] = 2;\n                    goto LAB_0002d134;\n                  }" ({ "{") (labeled_statement "LAB_0002d128:\n                    pbVar16 = (byte *)0x2;" (statement_identifier "LAB_0002d128") (: ":") (expression_statement "pbVar16 = (byte *)0x2;" (assignment_expression "pbVar16 = (byte *)0x2" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";"))) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" (identifier "pbVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[3] = 2;" (assignment_expression "pbVar19[3] = 2" (subscript_expression "pbVar19[3]" (identifier "pbVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0002d134;" (goto "goto") (statement_identifier "LAB_0002d134") (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar11 + -0x7d90))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d90))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d90))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7d90)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7d90)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d90)" (( "(") (binary_expression "iVar11 + -0x7d90" (identifier "iVar11") (+ "+") (number_literal "-0x7d90")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (expression_statement "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);" (assignment_expression "piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" (identifier "piVar9") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x110) + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x110) + -0x7d38)" (( "(") (binary_expression "*(int *)(puVar18 + -0x110) + -0x7d38" (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")")))) (+ "+") (number_literal "-0x7d38")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (piVar9 != (int *)0x0) {\n                    bVar1 = false;\n                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;\n                    goto LAB_0002cf58;\n                  }" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (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)piVar9 + 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)piVar9 + 0x13) == '.') goto LAB_0002d0e0;" (if "if") (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) == '.')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x13) == '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x13)" (( "(") (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";")) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d6c)" (( "(") (binary_expression "iVar11 + -0x7d6c" (identifier "iVar11") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";")) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002d128;" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x0)" (( "(") (binary_expression "pbVar16 == (byte *)0x0" (identifier "pbVar16") (== "==") (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)piVar9 + 0x13) != '.') goto LAB_0002cf34;" (if "if") (parenthesized_expression "(*(char *)((int)piVar9 + 0x13) != '.')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x13) != '.'" (pointer_expression "*(char *)((int)piVar9 + 0x13)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x13)" (( "(") (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x13")) () ")")))) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (goto_statement "goto LAB_0002cf34;" (goto "goto") (statement_identifier "LAB_0002cf34") (; ";"))) (labeled_statement "LAB_0002d0e0:\n              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" (statement_identifier "LAB_0002d0e0") (: ":") (if_statement "if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;" (if "if") (parenthesized_expression "(*(char *)(piVar9 + 5) != '\0')" (( "(") (binary_expression "*(char *)(piVar9 + 5) != '\0'" (pointer_expression "*(char *)(piVar9 + 5)" (* "*") (cast_expression "(char *)(piVar9 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + 5)" (( "(") (binary_expression "piVar9 + 5" (identifier "piVar9") (+ "+") (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 "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);" (assignment_expression "iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar24 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar24 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar24 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7d6c)" (( "(") (binary_expression "iVar24 + -0x7d6c" (identifier "iVar24") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x110)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0002cec4;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cec4;" (goto "goto") (statement_identifier "LAB_0002cec4") (; ";"))) (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar24 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7cc8)" (( "(") (binary_expression "iVar24 + -0x7cc8" (identifier "iVar24") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d208:\n          pbVar16 = *(byte **)pbVar19;" (statement_identifier "LAB_0002d208") (: ":") (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";"))) (} "}")) (else_clause "else {\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" (else "else") (compound_statement "{\n          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();\n          iVar11 = *(int *)(puVar18 + -0x110);\n          pbVar16 = *(byte **)pbVar19;\n          if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }\n        }" ({ "{") (expression_statement "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))()" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(**(code **)(iVar24 + -0x7cc8))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar24 + -0x7cc8))()" (parenthesized_expression "(**(code **)(iVar24 + -0x7cc8))" (( "(") (pointer_expression "**(code **)(iVar24 + -0x7cc8)" (* "*") (pointer_expression "*(code **)(iVar24 + -0x7cc8)" (* "*") (cast_expression "(code **)(iVar24 + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar24 + -0x7cc8)" (( "(") (binary_expression "iVar24 + -0x7cc8" (identifier "iVar24") (+ "+") (number_literal "-0x7cc8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";")) (if_statement "if (piVar6 != (int *)0x0) {\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" (if "if") (parenthesized_expression "(piVar6 != (int *)0x0)" (( "(") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(iVar11 + -0x7d6c))(piVar6);\n            iVar11 = *(int *)(puVar18 + -0x110);\n          }" ({ "{") (expression_statement "(**(code **)(iVar11 + -0x7d6c))(piVar6);" (call_expression "(**(code **)(iVar11 + -0x7d6c))(piVar6)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d6c))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7d6c)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d6c)" (( "(") (binary_expression "iVar11 + -0x7d6c" (identifier "iVar11") (+ "+") (number_literal "-0x7d6c")) () ")"))))) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(iVar11 + -0x7d68))(pbVar13);" (call_expression "(**(code **)(iVar11 + -0x7d68))(pbVar13)" (parenthesized_expression "(**(code **)(iVar11 + -0x7d68))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7d68)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7d68)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d68)" (( "(") (binary_expression "iVar11 + -0x7d68" (identifier "iVar11") (+ "+") (number_literal "-0x7d68")) () ")"))))) () ")")) (argument_list "(pbVar13)" (( "(") (identifier "pbVar13") () ")"))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "pbVar12 = pbVar15;" (assignment_expression "pbVar12 = pbVar15" (identifier "pbVar12") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x100) != 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x100) != 0" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d150;" (goto "goto") (statement_identifier "LAB_0002d150") (; ";"))) (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7bd8)" (( "(") (binary_expression "pcVar23 + -0x7bd8" (identifier "pcVar23") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002d1e4;" (goto "goto") (statement_identifier "LAB_0002d1e4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002d19c:\n    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (statement_identifier "LAB_0002d19c") (: ":") (expression_statement "pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();" (assignment_expression "pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))()" (identifier "pbVar19") (= "=") (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 "pbVar16 = *(byte **)pbVar19;" (assignment_expression "pbVar16 = *(byte **)pbVar19" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19")))) (; ";")) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar18 + -0x100) == 0) {\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x100) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x100) == 0" (pointer_expression "*(int *)(puVar18 + -0x100)" (* "*") (cast_expression "(int *)(puVar18 + -0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x100)" (( "(") (binary_expression "puVar18 + -0x100" (identifier "puVar18") (+ "+") (number_literal "-0x100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar29 = *(code **)(pcVar23 + -0x7bd8);\nLAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n      pcVar23 = *(code **)(puVar18 + -0x110);\n    }" ({ "{") (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7bd8);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7bd8)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7bd8)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7bd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7bd8)" (( "(") (binary_expression "pcVar23 + -0x7bd8" (identifier "pcVar23") (+ "+") (number_literal "-0x7bd8")) () ")"))))) (; ";")) (labeled_statement "LAB_0002d1e4:\n      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (statement_identifier "LAB_0002d1e4") (: ":") (expression_statement "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) () ")"))) (; ";"))) (expression_statement "pcVar23 = *(code **)(puVar18 + -0x110);" (assignment_expression "pcVar23 = *(code **)(puVar18 + -0x110)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(puVar18 + -0x110)" (* "*") (cast_expression "(code **)(puVar18 + -0x110)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_0002d150:\n    *(byte **)pbVar19 = pbVar16;" (statement_identifier "LAB_0002d150") (: ":") (expression_statement "*(byte **)pbVar19 = pbVar16;" (assignment_expression "*(byte **)pbVar19 = pbVar16" (pointer_expression "*(byte **)pbVar19" (* "*") (cast_expression "(byte **)pbVar19" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pbVar19"))) (= "=") (identifier "pbVar16")) (; ";"))) (expression_statement "*(undefined4 *)(puVar18 + -0x108) = 0;" (assignment_expression "*(undefined4 *)(puVar18 + -0x108) = 0" (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002d158:\n  piVar9 = *(int **)(puVar18 + -0xf4);" (statement_identifier "LAB_0002d158") (: ":") (expression_statement "piVar9 = *(int **)(puVar18 + -0xf4);" (assignment_expression "piVar9 = *(int **)(puVar18 + -0xf4)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar18 + -0xf4)" (* "*") (cast_expression "(int **)(puVar18 + -0xf4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xf4)" (( "(") (binary_expression "puVar18 + -0xf4" (identifier "puVar18") (+ "+") (number_literal "-0xf4")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002d15c:\n  pbVar13 = *(byte **)(puVar18 + -0x2c);" (statement_identifier "LAB_0002d15c") (: ":") (expression_statement "pbVar13 = *(byte **)(puVar18 + -0x2c);" (assignment_expression "pbVar13 = *(byte **)(puVar18 + -0x2c)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(puVar18 + -0x2c)" (* "*") (cast_expression "(byte **)(puVar18 + -0x2c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x2c)" (( "(") (binary_expression "puVar18 + -0x2c" (identifier "puVar18") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (pbVar13 != (byte *)*piVar9) {\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" (if "if") (parenthesized_expression "(pbVar13 != (byte *)*piVar9)" (( "(") (binary_expression "pbVar13 != (byte *)*piVar9" (identifier "pbVar13") (!= "!=") (cast_expression "(byte *)*piVar9" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) () ")")) (compound_statement "{\n    pcVar29 = *(code **)(pcVar23 + -0x7c10);\n    uVar31 = 0x2d36c;\n    (*pcVar29)();\n    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;\n    *(undefined4 *)(puVar18 + -300) = uVar31;\n    *(byte **)(puVar18 + -0x130) = pbVar19;\n    *(int **)(puVar18 + -0x134) = piVar6;\n    *(byte **)(puVar18 + -0x138) = pbVar16;\n    if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }\n    return pbVar13;\n  }" ({ "{") (expression_statement "pcVar29 = *(code **)(pcVar23 + -0x7c10);" (assignment_expression "pcVar29 = *(code **)(pcVar23 + -0x7c10)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar23 + -0x7c10)" (* "*") (cast_expression "(code **)(pcVar23 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + -0x7c10)" (( "(") (binary_expression "pcVar23 + -0x7c10" (identifier "pcVar23") (+ "+") (number_literal "-0x7c10")) () ")"))))) (; ";")) (expression_statement "uVar31 = 0x2d36c;" (assignment_expression "uVar31 = 0x2d36c" (identifier "uVar31") (= "=") (number_literal "0x2d36c")) (; ";")) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;" (assignment_expression "*(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70" (pointer_expression "*(code **)(puVar18 + -0x140)" (* "*") (cast_expression "(code **)(puVar18 + -0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x140)" (( "(") (binary_expression "puVar18 + -0x140" (identifier "puVar18") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "pcVar29 + 0x23e70" (identifier "pcVar29") (+ "+") (number_literal "0x23e70"))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -300) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -300) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -300)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -300)" (( "(") (binary_expression "puVar18 + -300" (identifier "puVar18") (+ "+") (number_literal "-300")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x130) = pbVar19;" (assignment_expression "*(byte **)(puVar18 + -0x130) = pbVar19" (pointer_expression "*(byte **)(puVar18 + -0x130)" (* "*") (cast_expression "(byte **)(puVar18 + -0x130)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x130)" (( "(") (binary_expression "puVar18 + -0x130" (identifier "puVar18") (+ "+") (number_literal "-0x130")) () ")")))) (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "*(int **)(puVar18 + -0x134) = piVar6;" (assignment_expression "*(int **)(puVar18 + -0x134) = piVar6" (pointer_expression "*(int **)(puVar18 + -0x134)" (* "*") (cast_expression "(int **)(puVar18 + -0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x134)" (( "(") (binary_expression "puVar18 + -0x134" (identifier "puVar18") (+ "+") (number_literal "-0x134")) () ")")))) (= "=") (identifier "piVar6")) (; ";")) (expression_statement "*(byte **)(puVar18 + -0x138) = pbVar16;" (assignment_expression "*(byte **)(puVar18 + -0x138) = pbVar16" (pointer_expression "*(byte **)(puVar18 + -0x138)" (* "*") (cast_expression "(byte **)(puVar18 + -0x138)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x138)" (( "(") (binary_expression "puVar18 + -0x138" (identifier "puVar18") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (identifier "pbVar16")) (; ";")) (if_statement "if (pbVar13 == (byte *)0x0) {\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }\n    else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0x0)" (( "(") (binary_expression "pbVar13 == (byte *)0x0" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar13 = (byte *)0xffffffff;\n      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();\n      *puVar5 = 0x7a;\n    }" ({ "{") (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar29 + 0x1c1a8))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c1a8))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x1c1a8)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x1c1a8)" (* "*") (cast_expression "(code **)(pcVar29 + 0x1c1a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1c1a8)" (( "(") (binary_expression "pcVar29 + 0x1c1a8" (identifier "pcVar29") (+ "+") (number_literal "0x1c1a8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar5 = 0x7a;" (assignment_expression "*puVar5 = 0x7a" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x7a")) (; ";")) (} "}")) (else_clause "else if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" (else "else") (if_statement "if (pbVar13 == (byte *)0xa) {\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" (if "if") (parenthesized_expression "(pbVar13 == (byte *)0xa)" (( "(") (binary_expression "pbVar13 == (byte *)0xa" (identifier "pbVar13") (== "==") (cast_expression "(byte *)0xa" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) () ")")) (compound_statement "{\n      uVar31 = *(undefined4 *)pbVar12;\n      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);\n      if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }\n    }" ({ "{") (expression_statement "uVar31 = *(undefined4 *)pbVar12;" (assignment_expression "uVar31 = *(undefined4 *)pbVar12" (identifier "uVar31") (= "=") (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);" (assignment_expression "iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" (parenthesized_expression "(**(code **)(pcVar29 + 0x1c2c8))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x1c2c8)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x1c2c8)" (* "*") (cast_expression "(code **)(pcVar29 + 0x1c2c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x1c2c8)" (( "(") (binary_expression "pcVar29 + 0x1c2c8" (identifier "pcVar29") (+ "+") (number_literal "0x1c2c8")) () ")"))))) () ")")) (argument_list "(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68)" (( "(") (identifier "uVar31") (, ",") (binary_expression "*(int *)(pcVar29 + 0x1bea8) + 0x3e68" (pointer_expression "*(int *)(pcVar29 + 0x1bea8)" (* "*") (cast_expression "(int *)(pcVar29 + 0x1bea8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x1bea8)" (( "(") (binary_expression "pcVar29 + 0x1bea8" (identifier "pcVar29") (+ "+") (number_literal "0x1bea8")) () ")")))) (+ "+") (number_literal "0x3e68")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pbVar13 = (byte *)0xffffffff;\n        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);\n        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);\n        pbVar12[0] = 0;\n        pbVar12[1] = 0;\n        pbVar12[2] = 0;\n        pbVar12[3] = 0;\n        puVar5 = (undefined4 *)(*pcVar29)();\n        *puVar5 = 0x3d;\n      }" ({ "{") (expression_statement "pbVar13 = (byte *)0xffffffff;" (assignment_expression "pbVar13 = (byte *)0xffffffff" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);" (call_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31)" (parenthesized_expression "(**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7d34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7d34)" (( "(") (binary_expression "*(int *)(puVar18 + -0x140) + -0x7d34" (pointer_expression "*(int *)(puVar18 + -0x140)" (* "*") (cast_expression "(int *)(puVar18 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x140)" (( "(") (binary_expression "puVar18 + -0x140" (identifier "puVar18") (+ "+") (number_literal "-0x140")) () ")")))) (+ "+") (number_literal "-0x7d34")) () ")"))))) () ")")) (argument_list "(uVar31)" (( "(") (identifier "uVar31") () ")"))) (; ";")) (expression_statement "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);" (assignment_expression "pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0x140) + -0x7cc8)" (( "(") (binary_expression "*(int *)(puVar18 + -0x140) + -0x7cc8" (pointer_expression "*(int *)(puVar18 + -0x140)" (* "*") (cast_expression "(int *)(puVar18 + -0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x140)" (( "(") (binary_expression "puVar18 + -0x140" (identifier "puVar18") (+ "+") (number_literal "-0x140")) () ")")))) (+ "+") (number_literal "-0x7cc8")) () ")"))))) (; ";")) (expression_statement "pbVar12[0] = 0;" (assignment_expression "pbVar12[0] = 0" (subscript_expression "pbVar12[0]" (identifier "pbVar12") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12[1] = 0;" (assignment_expression "pbVar12[1] = 0" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12[2] = 0;" (assignment_expression "pbVar12[2] = 0" (subscript_expression "pbVar12[2]" (identifier "pbVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12[3] = 0;" (assignment_expression "pbVar12[3] = 0" (subscript_expression "pbVar12[3]" (identifier "pbVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)(*pcVar29)();" (assignment_expression "puVar5 = (undefined4 *)(*pcVar29)()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(*pcVar29)()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar5 = 0x3d;" (assignment_expression "*puVar5 = 0x3d" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0x3d")) (; ";")) (} "}"))) (} "}"))))) (return_statement "return pbVar13;" (return "return") (identifier "pbVar13") (; ";")) (} "}"))) (return_statement "return *(byte **)(puVar18 + -0x108);" (return "return") (pointer_expression "*(byte **)(puVar18 + -0x108)" (* "*") (cast_expression "(byte **)(puVar18 + -0x108)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (; ";")) (labeled_statement "code_r0x0002d0ec:\n  pcVar29 = *(code **)(iVar11 + -0x7d38);" (statement_identifier "code_r0x0002d0ec") (: ":") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d38)" (( "(") (binary_expression "iVar11 + -0x7d38" (identifier "iVar11") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";"))) (if_statement "if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;" (if "if") (parenthesized_expression "((piVar9[5] & 0xffff0000U) == 0x2e000000)" (( "(") (binary_expression "(piVar9[5] & 0xffff0000U) == 0x2e000000" (parenthesized_expression "(piVar9[5] & 0xffff0000U)" (( "(") (binary_expression "piVar9[5] & 0xffff0000U" (subscript_expression "piVar9[5]" (identifier "piVar9") ([ "[") (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  pcVar29 = *(code **)(iVar11 + -0x7c30);" (statement_identifier "LAB_0002cf34") (: ":") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c30)" (( "(") (binary_expression "iVar11 + -0x7c30" (identifier "iVar11") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";"))) (if_statement "if (bVar1) {\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }\n    pcVar29 = *(code **)(iVar11 + -0x7d38);\n    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;\nLAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);\n  }" ({ "{") (if_statement "if (*piVar9 == iVar28) {\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }\n    else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" (if "if") (parenthesized_expression "(*piVar9 == iVar28)" (( "(") (binary_expression "*piVar9 == iVar28" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (identifier "iVar28")) () ")")) (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }\n    }" ({ "{") (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar18 + -0x104)" (* "*") (cast_expression "(int *)(puVar18 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (if_statement "if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" (if "if") (parenthesized_expression "(piVar9[1] == *(int *)(puVar18 + -0xfc))" (( "(") (binary_expression "piVar9[1] == *(int *)(puVar18 + -0xfc)" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (== "==") (pointer_expression "*(int *)(puVar18 + -0xfc)" (* "*") (cast_expression "(int *)(puVar18 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xfc)" (( "(") (binary_expression "puVar18 + -0xfc" (identifier "puVar18") (+ "+") (number_literal "-0xfc")) () ")"))))) () ")")) (compound_statement "{\n        pcVar29 = *(code **)(iVar11 + -0x7c30);\n        goto LAB_0002cf5c;\n      }" ({ "{") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c30)" (( "(") (binary_expression "iVar11 + -0x7c30" (identifier "iVar11") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002cf5c;" (goto "goto") (statement_identifier "LAB_0002cf5c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" (else "else") (compound_statement "{\n      iVar24 = *(int *)(puVar18 + -0x104);\n    }" ({ "{") (expression_statement "iVar24 = *(int *)(puVar18 + -0x104);" (assignment_expression "iVar24 = *(int *)(puVar18 + -0x104)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar18 + -0x104)" (* "*") (cast_expression "(int *)(puVar18 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d38)" (( "(") (binary_expression "iVar11 + -0x7d38" (identifier "iVar11") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (if_statement "if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;" (if "if") (parenthesized_expression "(iVar24 == *(int *)(puVar18 + -0xf0))" (( "(") (binary_expression "iVar24 == *(int *)(puVar18 + -0xf0)" (identifier "iVar24") (== "==") (pointer_expression "*(int *)(puVar18 + -0xf0)" (* "*") (cast_expression "(int *)(puVar18 + -0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf0)" (( "(") (binary_expression "puVar18 + -0xf0" (identifier "puVar18") (+ "+") (number_literal "-0xf0")) () ")"))))) () ")")) (goto_statement "goto LAB_0002cf18;" (goto "goto") (statement_identifier "LAB_0002cf18") (; ";"))) (labeled_statement "LAB_0002cf58:\n    pcVar29 = *(code **)(iVar11 + -0x7c30);" (statement_identifier "LAB_0002cf58") (: ":") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c30);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c30)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c30)" (( "(") (binary_expression "iVar11 + -0x7c30" (identifier "iVar11") (+ "+") (number_literal "-0x7c30")) () ")"))))) (; ";"))) (} "}"))) (labeled_statement "LAB_0002cf5c:\n  pbVar12 = (byte *)((int)piVar9 + 0x13);" (statement_identifier "LAB_0002cf5c") (: ":") (expression_statement "pbVar12 = (byte *)((int)piVar9 + 0x13);" (assignment_expression "pbVar12 = (byte *)((int)piVar9 + 0x13)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)((int)piVar9 + 0x13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x13)" (( "(") (binary_expression "(int)piVar9 + 0x13" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x13")) () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(puVar18 + -0x118) = 0x100;" (assignment_expression "*(undefined4 *)(puVar18 + -0x118) = 0x100" (pointer_expression "*(undefined4 *)(puVar18 + -0x118)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x118)" (( "(") (binary_expression "puVar18 + -0x118" (identifier "puVar18") (+ "+") (number_literal "-0x118")) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (expression_statement "pbVar15 = pbVar13;" (assignment_expression "pbVar15 = pbVar13" (identifier "pbVar15") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);" (assignment_expression "iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21)" (identifier "iVar24") (= "=") (call_expression "(*pcVar29)(3,pbVar13,pbVar12,puVar21)" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(3,pbVar13,pbVar12,puVar21)" (( "(") (number_literal "3") (, ",") (identifier "pbVar13") (, ",") (identifier "pbVar12") (, ",") (identifier "puVar21") () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar24 != 0) goto LAB_0002cf10;" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cf10;" (goto "goto") (statement_identifier "LAB_0002cf10") (; ";"))) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d38);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d38)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d38)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d38)" (( "(") (binary_expression "iVar11 + -0x7d38" (identifier "iVar11") (+ "+") (number_literal "-0x7d38")) () ")"))))) (; ";")) (if_statement "if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;" (if "if") (parenthesized_expression "(((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)))" (( "(") (binary_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)) ||\n     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" (parenthesized_expression "((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28))" (( "(") (binary_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||\n      (*(int *)(puVar18 + -0xc0) != iVar28)" (parenthesized_expression "(((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)))" (( "(") (binary_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||\n       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" (parenthesized_expression "((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000)" (( "(") (binary_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000" (parenthesized_expression "(*(uint *)(puVar18 + -0xb8) & 0xf000)" (( "(") (binary_expression "*(uint *)(puVar18 + -0xb8) & 0xf000" (pointer_expression "*(uint *)(puVar18 + -0xb8)" (* "*") (cast_expression "(uint *)(puVar18 + -0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xb8)" (( "(") (binary_expression "puVar18 + -0xb8" (identifier "puVar18") (+ "+") (number_literal "-0xb8")) () ")")))) (& "&") (number_literal "0xf000")) () ")")) (!= "!=") (number_literal "0x4000")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))" (( "(") (binary_expression "*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104)" (pointer_expression "*(int *)(puVar18 + -0xd0)" (* "*") (cast_expression "(int *)(puVar18 + -0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd0)" (( "(") (binary_expression "puVar18 + -0xd0" (identifier "puVar18") (+ "+") (number_literal "-0xd0")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar18 + -0x104)" (* "*") (cast_expression "(int *)(puVar18 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar18 + -0xc0) != iVar28)" (( "(") (binary_expression "*(int *)(puVar18 + -0xc0) != iVar28" (pointer_expression "*(int *)(puVar18 + -0xc0)" (* "*") (cast_expression "(int *)(puVar18 + -0xc0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xc0)" (( "(") (binary_expression "puVar18 + -0xc0" (identifier "puVar18") (+ "+") (number_literal "-0xc0")) () ")")))) (!= "!=") (identifier "iVar28")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))" (( "(") (binary_expression "*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc)" (pointer_expression "*(int *)(puVar18 + -0xbc)" (* "*") (cast_expression "(int *)(puVar18 + -0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xbc)" (( "(") (binary_expression "puVar18 + -0xbc" (identifier "puVar18") (+ "+") (number_literal "-0xbc")) () ")")))) (!= "!=") (pointer_expression "*(int *)(puVar18 + -0xfc)" (* "*") (cast_expression "(int *)(puVar18 + -0xfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xfc)" (( "(") (binary_expression "puVar18 + -0xfc" (identifier "puVar18") (+ "+") (number_literal "-0xfc")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_0002cf18;" (goto "goto") (statement_identifier "LAB_0002cf18") (; ";"))) (expression_statement "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));" (assignment_expression "pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108))" (( "(") (binary_expression "*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108)" (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")"))))) () ")")))) (; ";")) (expression_statement "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);" (assignment_expression "pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar11 + -0x7ca4))(pbVar12)" (parenthesized_expression "(**(code **)(iVar11 + -0x7ca4))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7ca4)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7ca4)" (* "*") (cast_expression "(code **)(iVar11 + -0x7ca4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7ca4)" (( "(") (binary_expression "iVar11 + -0x7ca4" (identifier "iVar11") (+ "+") (number_literal "-0x7ca4")) () ")"))))) () ")")) (argument_list "(pbVar12)" (( "(") (identifier "pbVar12") () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (pbVar27 <= pbVar16) {\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" (if "if") (parenthesized_expression "(pbVar27 <= pbVar16)" (( "(") (binary_expression "pbVar27 <= pbVar16" (identifier "pbVar27") (<= "<=") (identifier "pbVar16")) () ")")) (compound_statement "{\n    pbVar20 = *(byte **)(puVar18 + -0xf8);\n    if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }\n    pbVar7 = pbVar20;\n    if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }\n    pbVar17 = pbVar7 + (int)pbVar20;\n    pcVar29 = *(code **)(iVar11 + -0x7c78);\n    if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }\n    *(byte **)(puVar18 + -0x104) = pbVar7;\n    pbVar15 = pbVar17;\n    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));\n    iVar11 = *(int *)(puVar18 + -0x110);\n    if (iVar24 == 0) goto LAB_0002d338;\n    uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);\n    iVar11 = *(int *)(puVar18 + -0x110);\n    *(byte **)(puVar18 + -0xf8) = pbVar17;\n    *(undefined4 *)(puVar18 + -0xe0) = uVar31;\n    *(int *)(puVar18 + -0x108) = iVar24;\n  }" ({ "{") (expression_statement "pbVar20 = *(byte **)(puVar18 + -0xf8);" (assignment_expression "pbVar20 = *(byte **)(puVar18 + -0xf8)" (identifier "pbVar20") (= "=") (pointer_expression "*(byte **)(puVar18 + -0xf8)" (* "*") (cast_expression "(byte **)(puVar18 + -0xf8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar18 + 4) != 0) {\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + 4) != 0)" (( "(") (binary_expression "*(int *)(puVar18 + 4) != 0" (pointer_expression "*(int *)(puVar18 + 4)" (* "*") (cast_expression "(int *)(puVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar16 = (byte *)0x22;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0x22;\n      goto LAB_0002d134;\n    }" ({ "{") (expression_statement "pbVar16 = (byte *)0x22;" (assignment_expression "pbVar16 = (byte *)0x22" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x22" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x22"))) (; ";")) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" (identifier "pbVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[3] = 0x22;" (assignment_expression "pbVar19[3] = 0x22" (subscript_expression "pbVar19[3]" (identifier "pbVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x22")) (; ";")) (goto_statement "goto LAB_0002d134;" (goto "goto") (statement_identifier "LAB_0002d134") (; ";")) (} "}"))) (expression_statement "pbVar7 = pbVar20;" (assignment_expression "pbVar7 = pbVar20" (identifier "pbVar7") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (pbVar20 < pbVar16) {\n      pbVar7 = pbVar16;\n    }" (if "if") (parenthesized_expression "(pbVar20 < pbVar16)" (( "(") (binary_expression "pbVar20 < pbVar16" (identifier "pbVar20") (< "<") (identifier "pbVar16")) () ")")) (compound_statement "{\n      pbVar7 = pbVar16;\n    }" ({ "{") (expression_statement "pbVar7 = pbVar16;" (assignment_expression "pbVar7 = pbVar16" (identifier "pbVar7") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (expression_statement "pbVar17 = pbVar7 + (int)pbVar20;" (assignment_expression "pbVar17 = pbVar7 + (int)pbVar20" (identifier "pbVar17") (= "=") (binary_expression "pbVar7 + (int)pbVar20" (identifier "pbVar7") (+ "+") (cast_expression "(int)pbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar20")))) (; ";")) (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7c78);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7c78)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7c78)" (* "*") (cast_expression "(code **)(iVar11 + -0x7c78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7c78)" (( "(") (binary_expression "iVar11 + -0x7c78" (identifier "iVar11") (+ "+") (number_literal "-0x7c78")) () ")"))))) (; ";")) (if_statement "if (pbVar17 < pbVar20) {\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" (if "if") (parenthesized_expression "(pbVar17 < pbVar20)" (( "(") (binary_expression "pbVar17 < pbVar20" (identifier "pbVar17") (< "<") (identifier "pbVar20")) () ")")) (compound_statement "{\nLAB_0002d338:\n      pbVar16 = (byte *)0xc;\n      pbVar19[0] = 0;\n      pbVar19[1] = 0;\n      pbVar19[2] = 0;\n      pbVar19[3] = 0xc;\nLAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);\n      goto LAB_0002d138;\n    }" ({ "{") (labeled_statement "LAB_0002d338:\n      pbVar16 = (byte *)0xc;" (statement_identifier "LAB_0002d338") (: ":") (expression_statement "pbVar16 = (byte *)0xc;" (assignment_expression "pbVar16 = (byte *)0xc" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0xc" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc"))) (; ";"))) (expression_statement "pbVar19[0] = 0;" (assignment_expression "pbVar19[0] = 0" (subscript_expression "pbVar19[0]" (identifier "pbVar19") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[1] = 0;" (assignment_expression "pbVar19[1] = 0" (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[2] = 0;" (assignment_expression "pbVar19[2] = 0" (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19[3] = 0xc;" (assignment_expression "pbVar19[3] = 0xc" (subscript_expression "pbVar19[3]" (identifier "pbVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (labeled_statement "LAB_0002d134:\n      pcVar29 = *(code **)(iVar11 + -0x7d6c);" (statement_identifier "LAB_0002d134") (: ":") (expression_statement "pcVar29 = *(code **)(iVar11 + -0x7d6c);" (assignment_expression "pcVar29 = *(code **)(iVar11 + -0x7d6c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(iVar11 + -0x7d6c)" (* "*") (cast_expression "(code **)(iVar11 + -0x7d6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7d6c)" (( "(") (binary_expression "iVar11 + -0x7d6c" (identifier "iVar11") (+ "+") (number_literal "-0x7d6c")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0002d138;" (goto "goto") (statement_identifier "LAB_0002d138") (; ";")) (} "}"))) (expression_statement "*(byte **)(puVar18 + -0x104) = pbVar7;" (assignment_expression "*(byte **)(puVar18 + -0x104) = pbVar7" (pointer_expression "*(byte **)(puVar18 + -0x104)" (* "*") (cast_expression "(byte **)(puVar18 + -0x104)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (identifier "pbVar7")) (; ";")) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" (identifier "pbVar15") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));" (assignment_expression "iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (identifier "iVar24") (= "=") (call_expression "(*pcVar29)(*(undefined4 *)(puVar18 + -0x108))" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "(*(undefined4 *)(puVar18 + -0x108))" (( "(") (pointer_expression "*(undefined4 *)(puVar18 + -0x108)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 0) goto LAB_0002d338;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d338;" (goto "goto") (statement_identifier "LAB_0002d338") (; ";"))) (expression_statement "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);" (assignment_expression "uVar31 = (**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" (identifier "uVar31") (= "=") (call_expression "(**(code **)(iVar11 + -0x7be0))\n                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7be0)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7be0)" (* "*") (cast_expression "(code **)(iVar11 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7be0)" (( "(") (binary_expression "iVar11 + -0x7be0" (identifier "iVar11") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,\n                        *(int *)(puVar18 + -0xf8) - (int)pbVar27)" (( "(") (binary_expression "pbVar27 + iVar24 + *(int *)(puVar18 + -0x104)" (binary_expression "pbVar27 + iVar24" (identifier "pbVar27") (+ "+") (identifier "iVar24")) (+ "+") (pointer_expression "*(int *)(puVar18 + -0x104)" (* "*") (cast_expression "(int *)(puVar18 + -0x104)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")"))))) (, ",") (binary_expression "pbVar27 + iVar24" (identifier "pbVar27") (+ "+") (identifier "iVar24")) (, ",") (binary_expression "*(int *)(puVar18 + -0xf8) - (int)pbVar27" (pointer_expression "*(int *)(puVar18 + -0xf8)" (* "*") (cast_expression "(int *)(puVar18 + -0xf8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) (- "-") (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27"))) () ")")))) (; ";")) (expression_statement "iVar11 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar11 = *(int *)(puVar18 + -0x110)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar18 + -0xf8) = pbVar17;" (assignment_expression "*(byte **)(puVar18 + -0xf8) = pbVar17" (pointer_expression "*(byte **)(puVar18 + -0xf8)" (* "*") (cast_expression "(byte **)(puVar18 + -0xf8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -0xf8)" (( "(") (binary_expression "puVar18 + -0xf8" (identifier "puVar18") (+ "+") (number_literal "-0xf8")) () ")")))) (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xe0) = uVar31;" (assignment_expression "*(undefined4 *)(puVar18 + -0xe0) = uVar31" (pointer_expression "*(undefined4 *)(puVar18 + -0xe0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xe0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (identifier "uVar31")) (; ";")) (expression_statement "*(int *)(puVar18 + -0x108) = iVar24;" (assignment_expression "*(int *)(puVar18 + -0x108) = iVar24" (pointer_expression "*(int *)(puVar18 + -0x108)" (* "*") (cast_expression "(int *)(puVar18 + -0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x108)" (( "(") (binary_expression "puVar18 + -0x108" (identifier "puVar18") (+ "+") (number_literal "-0x108")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (} "}"))) (expression_statement "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)\n  ;" (assignment_expression "iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" (parenthesized_expression "(**(code **)(iVar11 + -0x7be0))" (( "(") (pointer_expression "**(code **)(iVar11 + -0x7be0)" (* "*") (pointer_expression "*(code **)(iVar11 + -0x7be0)" (* "*") (cast_expression "(code **)(iVar11 + -0x7be0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + -0x7be0)" (( "(") (binary_expression "iVar11 + -0x7be0" (identifier "iVar11") (+ "+") (number_literal "-0x7be0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)" (( "(") (binary_expression "*(int *)(puVar18 + -0xe0) - (int)pbVar16" (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (- "-") (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16"))) (, ",") (identifier "pbVar12") (, ",") (identifier "pbVar16") () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(puVar18 + -0x110);" (assignment_expression "iVar25 = *(int *)(puVar18 + -0x110)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(puVar18 + -0x110)" (* "*") (cast_expression "(int *)(puVar18 + -0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x110)" (( "(") (binary_expression "puVar18 + -0x110" (identifier "puVar18") (+ "+") (number_literal "-0x110")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(puVar18 + -0xd8);" (assignment_expression "iVar28 = *(int *)(puVar18 + -0xd8)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(puVar18 + -0xd8)" (* "*") (cast_expression "(int *)(puVar18 + -0xd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd8)" (( "(") (binary_expression "puVar18 + -0xd8" (identifier "puVar18") (+ "+") (number_literal "-0xd8")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar18 + -0xe0) = iVar11 + -1;" (assignment_expression "*(int *)(puVar18 + -0xe0) = iVar11 + -1" (pointer_expression "*(int *)(puVar18 + -0xe0)" (* "*") (cast_expression "(int *)(puVar18 + -0xe0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xe0)" (( "(") (binary_expression "puVar18 + -0xe0" (identifier "puVar18") (+ "+") (number_literal "-0xe0")) () ")")))) (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined1 *)(iVar11 + -1) = 0x2f;" (assignment_expression "*(undefined1 *)(iVar11 + -1) = 0x2f" (pointer_expression "*(undefined1 *)(iVar11 + -1)" (* "*") (cast_expression "(undefined1 *)(iVar11 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + -1)" (( "(") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0x2f")) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);" (assignment_expression "*(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4)" (pointer_expression "*(undefined4 *)(puVar18 + -0xfc)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xfc)" (( "(") (binary_expression "puVar18 + -0xfc" (identifier "puVar18") (+ "+") (number_literal "-0xfc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xd4)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xd4)" (( "(") (binary_expression "puVar18 + -0xd4" (identifier "puVar18") (+ "+") (number_literal "-0xd4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);" (assignment_expression "*(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0)" (pointer_expression "*(undefined4 *)(puVar18 + -0x104)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x104)" (( "(") (binary_expression "puVar18 + -0x104" (identifier "puVar18") (+ "+") (number_literal "-0x104")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + -0xf0)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0xf0)" (( "(") (binary_expression "puVar18 + -0xf0" (identifier "puVar18") (+ "+") (number_literal "-0xf0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002ce58;" (goto "goto") (statement_identifier "LAB_0002ce58") (; ";")) (} "}")))

int function_1(int var_3,char *var_1,char *var_22,char *string_end,type_1 no_leading_period,int flags)

{
  bool bVar1;
  type_2 *puVar2;
  type_2 *var_20;
  type_3 var_9;
  type_4 var_7;
  type_5 *var_30;
  type_6 *puVar6;
  int *var_34;
  int *var_35;
  int var_27;
  type_4 *var_36;
  int var_2;
  type_4 *var_25;
  type_4 *var_10;
  type_7 *ppVar15;
  type_5 *puVar16;
  type_3 var_12;
  type_4 *var_18;
  type_4 *var_8;
  type_2 *unaff_s3;
  type_4 *var_37;
  type_8 *var_11;
  type_8 *var_28;
  type_4 *unaff_s6;
  type_4 *var_6;
  type_4 *var_19;
  type_5 *var_13;
  type_2 *var_5;
  type_9 *var_31;
  int var_14;
  int var_32;
  type_5 *puVar27;
  type_4 *var_21;
  int var_33;
  type_9 *var_23;
  type_9 *pcVar31;
  type_6 uVar32;
  type_5 auStack_68 [24];
  type_4 *var_15;
  type_7 *local_34;
  type_7 *var_16;
  type_4 *var_17;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  var_13 = auStack_68;
  var_6 = (type_4 *)(var_1 + 1);
  var_16 = (type_7 *)0x0;
  var_17 = *(type_4 **)PTR___stack_chk_guard_000495fc;
  var_25 = (type_4 *)var_1;
  var_10 = (type_4 *)var_22;
  var_15 = (type_4 *)(*(type_9 *)PTR_strlen_0004953c)(var_1);
  var_5 = PTR_DAT_00049208;
  var_2 = (int)var_1[1];
  if (var_2 != 0) {
    var_11 = (type_8 *)0x0;
    var_12 = (type_3)(var_3 - 0x3fU < 2);
    var_20 = var_4 + 0x671c;
    local_34 = (type_7 *)&var_16;
    var_30 = auStack_68;
    unaff_s6 = var_6;
LAB_0002b75c:
    do {
      var_13 = var_30;
      unaff_s3 = var_5;
      if (var_2 == 0x5b) {
        if (*(int *)(var_5 + -0x5830) == 0) {
          var_2 = (*(type_9 *)PTR_getenv_0004956c)(var_20);
          uVar32 = 0xffffffff;
          if (var_2 != 0) {
            uVar32 = 1;
          }
          *(type_6 *)(var_5 + -0x5830) = uVar32;
        }
        var_7 = var_6[1];
        var_8 = var_6 + 1;
        if ((var_7 == 0x21) || ((*(int *)(var_5 + -0x5830) < 0 && (var_7 == 0x5e)))) {
          var_7 = var_6[2];
          var_8 = var_6 + 2;
        }
        if (var_7 == 0x5d) {
          var_7 = var_8[1];
          var_8 = var_8 + 1;
        }
        var_25 = (type_4 *)0x5d;
        while (var_6 = var_8 + 1, var_7 != 0x5d) {
          if (var_7 == 0) goto LAB_0002b7b4;
          var_8 = var_6;
          var_7 = *var_6;
        }
        var_2 = (int)(char)var_8[1];
      }
      else {
        var_25 = &DAT_c0000601;
        var_9 = var_2 - 0x21U & 0xff;
        var_10 = (type_4 *)(type_3)(var_9 < 0x20);
        if (var_10 == (type_4 *)0x0) {
          if ((var_2 == 0x7c) && (var_11 == (type_8 *)0x0)) {
            var_8 = var_15;
            if (var_12 == 0) {
              var_8 = var_6 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((type_3)(var_8 + 7) & 0xfffffffc) - 4) break;
            var_10 = var_6 + -(int)unaff_s6;
            var_18 = var_6 + 1;
            var_14 = -(((type_3)(var_8 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar27 = var_13 + var_14;
            ppVar15 = (type_7 *)(var_13 + var_14 + 0x18);
            var_30 = (type_5 *)(*(type_9 *)PTR_mempcpy_000495e4)(var_13 + var_14 + 0x1c);
            var_2 = (int)(char)var_6[1];
            *var_30 = 0;
            ppVar15->next = (type_7 *)0x0;
            local_34->next = ppVar15;
            var_25 = unaff_s6;
            unaff_s6 = var_18;
            var_6 = var_18;
            var_13 = var_13 + var_14;
            local_34 = ppVar15;
            var_30 = puVar27;
            if (var_2 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          var_2 = (int)(char)var_6[1];
        }
        else {
          while ((int)((0xc0000601U >> (var_9 & 0x1f)) << 0x1f) < 0) {
            var_2 = (int)(char)var_6[1];
            if (var_2 != 0x28) goto joined_r0x0002b91c;
            var_10 = (type_4 *)0x1;
            var_11 = (type_8 *)((int)var_11 + 1);
            var_6 = var_6 + 1;
            var_9 = 7;
          }
          if (var_2 != 0x29) goto LAB_0002b918;
          if (var_11 == (type_8 *)0x0) {
            if (1 < var_3 - 0x3fU) {
              var_15 = var_6 + (1 - (int)unaff_s6);
            }
            if (((type_3)(var_15 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              var_2 = -(((type_3)(var_15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              var_30 = (type_5 *)
                       (*(type_9 *)PTR_mempcpy_000495e4)
                                 (var_13 + var_2 + 0x1c,unaff_s6,(int)var_6 - (int)unaff_s6);
              *var_30 = 0;
              ((type_7 *)(var_13 + var_2 + 0x18))->next = (type_7 *)0x0;
              local_34->next = (type_7 *)(var_13 + var_2 + 0x18);
              if (var_16 == (type_7 *)0x0) {
                var_2 = (*(type_9 *)PTR___assert_fail_00049460)
                                   (var_4 + 0x7a14,var_4 + 0x7a00,0x454,
                                    var_4 + 0x7d60);
                return var_2;
              }
              if (var_6[-1] != 0x29) {
                var_2 = (*(type_9 *)PTR___assert_fail_00049460)
                                   (var_4 + 0x7a24,var_4 + 0x7a00,0x455,
                                    var_4 + 0x7d60);
                return var_2;
              }
              if (0x1f < var_3 - 0x21U) {
                var_2 = (*(type_9 *)PTR___assert_fail_00049460)
                                   (var_4 + 0x7a38,var_4 + 0x7a00,0x4ad,
                                    var_4 + 0x7d60);
                return var_2;
              }
                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */
                    /* WARNING: Treating indirect jump as call */
              var_2 = (*(type_9 *)(&_gp + *(int *)(var_4 + (var_3 - 0x21U) * 4 + 0x7bf0)))()
              ;
              return var_2;
            }
            break;
          }
          var_2 = (int)(char)var_6[1];
          var_11 = (type_8 *)((int)var_11 + -1);
        }
joined_r0x0002b91c:
        var_6 = var_6 + 1;
      }
      var_30 = var_13;
    } while (var_2 != 0);
  }
LAB_0002b7b4:
  if (var_17 == *(type_4 **)puVar2) {
    return -1;
  }
  var_23 = var_24;
  var_8 = var_17;
  var_5 = PTR___stack_chk_fail_000495d0;
  (*(type_9 *)PTR___stack_chk_fail_000495d0)();
  var_20 = var_5 + 0x25450;
  puVar6 = *(type_6 **)(var_5 + 0x1d86c);
  *(type_5 **)(var_13 + -8) = auStack_68;
  *(type_2 **)(var_13 + -0x1c) = unaff_s3;
  *(type_2 **)(var_13 + -0x160) = var_20;
  *(type_9 **)(var_13 + -4) = var_23;
  *(type_4 **)(var_13 + -0xc) = var_6;
  *(type_4 **)(var_13 + -0x10) = unaff_s6;
  *(type_8 **)(var_13 + -0x14) = var_11;
  *(char **)(var_13 + -0x18) = var_22;
  *(type_2 **)(var_13 + -0x20) = puVar2;
  *(type_3 *)(var_13 + -0x24) = var_12;
  *(char **)(var_13 + -0x28) = var_1;
  *(type_6 **)(var_13 + -0x144) = puVar6;
  *(type_4 **)(var_13 + -0x154) = var_8 + 1;
  var_18 = (type_4 *)(type_3)*var_8;
  *(type_6 *)(var_13 + -0x2c) = *puVar6;
  var_19 = *(type_4 **)(var_5 + 0x1d488);
  var_6 = var_10;
  var_21 = var_25;
  if (var_18 != (type_4 *)0x0) {
    var_9 = *(type_3 *)(var_13 + 0x10);
    var_12 = var_9 & 2;
    var_1 = (char *)(var_9 & 0x10);
    *(type_3 *)(var_13 + -0x140) = var_9 & 5;
    *(type_6 *)(var_13 + -0x148) = *(type_6 *)(var_5 + 0x1d478);
    *(type_4 **)(var_13 + -0x14c) = var_19 + 0x7c70;
    *(int *)(var_13 + -0x138) = *(int *)(var_5 + 0x1d488) + -0x4960;
    *(int *)(var_13 + -0x13c) = *(int *)(var_5 + 0x1d488) + 0x671c;
    var_22 = (char *)var_8;
    unaff_s6 = (type_4 *)string_end;
    do {
      var_8 = var_18;
      if (var_1 != (char *)0x0) {
        var_34 = (int *)(**(type_9 **)(var_20 + -0x7d7c))();
        var_20 = *(type_2 **)(var_13 + -0x160);
        var_8 = (type_4 *)(type_3)*(type_4 *)(*var_34 + (int)var_18 * 4 + 3);
      }
      if (((type_3)(var_8 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_2 = (*(type_9 *)(var_20 + *(int *)(*(int *)(var_13 + -0x14c) +
                                             ((type_3)(var_8 + -0x21) & 0xff) * 4)))();
        return var_2;
      }
      var_9 = 1;
      var_18 = var_8;
      if (var_21 == var_10) goto LAB_0002c064;
      var_18 = (type_4 *)(type_3)*var_21;
      if (var_1 != (char *)0x0) {
        var_34 = (int *)(**(type_9 **)(var_20 + -0x7d7c))();
        var_20 = *(type_2 **)(var_13 + -0x160);
        var_18 = *(type_4 **)(*var_34 + (int)var_18 * 4);
      }
      var_9 = 1;
      unaff_s6 = var_8;
      if (var_18 != var_8) goto LAB_0002c064;
      var_22 = *(char **)(var_13 + -0x154);
      unaff_s6 = (type_4 *)0x0;
      var_18 = (type_4 *)(type_3)(type_4)*var_22;
      var_21 = var_21 + 1;
      *(type_4 **)(var_13 + -0x154) = (type_4 *)var_22 + 1;
    } while (var_18 != (type_4 *)0x0);
  }
  var_9 = 0;
  if (var_21 != var_10) {
    var_22 = (char *)(*(type_3 *)(var_13 + 0x10) & 8);
    if ((type_4 *)var_22 == (type_4 *)0x0) {
      var_9 = 1;
    }
    else {
      var_9 = (type_3)(*var_21 != 0x2f);
    }
  }
LAB_0002c064:
  var_2 = *(int *)(var_13 + -0x2c);
  if (var_2 == **(int **)(var_13 + -0x144)) {
    return var_9;
  }
  var_23 = *(type_9 **)(var_20 + -0x7c10);
  pcVar31 = gnu_fnmatch;
  (*var_23)();
  var_30 = var_13 + -0x1e0;
  var_31 = *(type_9 **)(var_23 + 0x1cbc4);
  *(type_3 *)(var_13 + -0x19c) = var_12;
  var_34 = *(int **)(var_23 + 0x1cc28);
  *(type_4 **)(var_13 + -0x180) = var_21;
  *(type_4 **)(var_13 + -0x198) = var_18;
  *(type_9 **)(var_13 + -0x1c8) = var_23 + 0x2480c;
  *(type_9 **)(var_13 + -0x17c) = pcVar31;
  *(type_4 **)(var_13 + -0x184) = var_19;
  *(type_4 **)(var_13 + -0x188) = unaff_s6;
  *(type_8 **)(var_13 + -0x18c) = var_11;
  *(char **)(var_13 + -400) = var_22;
  *(type_4 **)(var_13 + -0x194) = var_10;
  *(char **)(var_13 + -0x1a0) = var_1;
  *(int *)(var_13 + -0x1b4) = var_2;
  *(type_4 **)(var_13 + -0x1b8) = var_25;
  *(int *)(var_13 + -0x1a4) = *var_34;
  var_2 = (*var_31)();
  var_14 = *(int *)(var_13 + -0x1c8);
  if (var_2 == 1) {
LAB_0002ca44:
    var_25 = *(type_4 **)(var_13 + -0x1b8);
    var_2 = (**(type_9 **)(var_14 + -0x7ca4))(var_25);
    *(type_4 **)(var_13 + -0x1d0) = var_6;
    var_8 = (type_4 *)var_24(*(char **)(var_13 + -0x1b4),(char *)var_25,
                                       (char *)(var_25 + var_2),
                                       var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),
                                       *(int *)(var_13 + -0x1d0));
    var_2 = *(int *)(var_13 + -0x1c8);
    var_30 = var_13 + -0x1e0;
  }
  else {
    puVar16 = var_13 + -0x1ac;
    var_23 = *(type_9 **)(var_14 + -0x7ba4);
    var_11 = (type_8 *)(var_13 + -0x1b4);
    *(type_6 *)(var_13 + -0x1ac) = 0;
    *(type_6 *)(var_13 + -0x1a8) = 0;
    var_2 = (*var_23)(0,var_11,0,puVar16);
    var_10 = (type_4 *)(var_2 + 1);
    var_14 = *(int *)(var_13 + -0x1c8);
    if (var_10 == (type_4 *)0x0) goto LAB_0002ca44;
    var_2 = (**(type_9 **)(var_14 + -0x7be8))(puVar16);
    uVar32 = 0x129;
    var_14 = *(int *)(var_13 + -0x1c8);
    if (var_2 == 0) goto LAB_0002ccf0;
    unaff_s6 = var_13 + -0x1b8;
    var_25 = unaff_s6;
    var_22 = (char *)(**(type_9 **)(var_14 + -0x7ba4))(0,unaff_s6,0,puVar16);
    var_19 = (type_4 *)var_22 + 1;
    var_14 = *(int *)(var_13 + -0x1c8);
    if (var_19 == (type_4 *)0x0) goto LAB_0002ca44;
    var_2 = (**(type_9 **)(var_14 + -0x7be8))(puVar16);
    var_14 = *(int *)(var_13 + -0x1c8);
    if (var_2 == 0) {
      uVar32 = 0x12d;
      goto LAB_0002ccf0;
    }
    var_8 = var_10 + (int)var_19;
    if ((var_8 < var_10) || ((type_4 *)0x3fffffff < var_8)) {
LAB_0002cc10:
      var_8 = (type_4 *)0xffffffff;
      puVar6 = (type_6 *)(**(type_9 **)(var_14 + -0x7cc8))();
      var_2 = *(int *)(var_13 + -0x1c8);
      *puVar6 = 0xc;
    }
    else if (var_8 < (type_4 *)0x7d0) {
      var_27 = -((int)var_8 * 4 + 7U & 0xfffffff8);
      var_28 = (type_8 *)(var_13 + var_27 + -0x1c8);
      var_18 = (type_4 *)(var_28 + (int)var_10);
      (**(type_9 **)(var_14 + -0x7ba4))(var_28,var_11,var_10,puVar16);
      var_2 = (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7be8))(puVar16);
      var_14 = *(int *)(var_13 + -0x1c8);
      if (var_2 == 0) {
LAB_0002cd10:
        do {
          uVar32 = 0x147;
LAB_0002ccf0:
          (**(type_9 **)(var_14 + -0x7d80))
                    (*(int *)(var_14 + -0x7fc8) + 0x7a70,*(int *)(var_14 + -0x7fc8) + 0x7a60,uVar32,
                     *(int *)(var_14 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(type_9 **)(var_14 + -0x7ba4))(var_18,unaff_s6,var_19,puVar16);
      *(type_4 **)(var_13 + var_27 + -0x1d0) = var_6;
      var_25 = var_18;
      var_8 = (type_4 *)var_29(var_28,(type_8 *)var_18,
                                          (type_8 *)(var_18 + (int)var_22 * 4),
                                          var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),
                                          *(int *)(var_13 + var_27 + -0x1d0));
      var_2 = *(int *)(var_13 + -0x1c8);
      var_10 = var_18;
      var_11 = var_28;
      var_30 = var_13 + var_27 + -0x1e0;
    }
    else {
      var_2 = (**(type_9 **)(var_14 + -0x7c80))();
      var_14 = *(int *)(var_13 + -0x1c8);
      if (var_2 == 0) goto LAB_0002cc10;
      var_23 = *(type_9 **)(var_14 + -0x7ba4);
      *(int *)(var_13 + -0x1bc) = var_2;
      var_18 = (type_4 *)(var_2 + (int)var_10 * 4);
      (*var_23)(var_2,var_11,var_10,puVar16);
      var_2 = (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7be8))(puVar16);
      var_14 = *(int *)(var_13 + -0x1c8);
      if (var_2 == 0) goto LAB_0002cd10;
      var_23 = *(type_9 **)(var_14 + -0x7ba4);
      *(type_6 *)(var_13 + -0x1bc) = *(type_6 *)(var_13 + -0x1bc);
      (*var_23)(var_18,unaff_s6,var_19,puVar16);
      *(type_4 **)(var_13 + -0x1d0) = var_6;
      var_25 = var_18;
      var_8 = (type_4 *)var_29(*(type_8 **)(var_13 + -0x1bc),(type_8 *)var_18,
                                          (type_8 *)(var_18 + (int)var_22 * 4),
                                          var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),
                                          *(int *)(var_13 + -0x1d0));
      (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7bd8))(*(type_6 *)(var_13 + -0x1bc));
      var_2 = *(int *)(var_13 + -0x1c8);
      var_10 = var_18;
      var_30 = var_13 + -0x1e0;
    }
  }
  var_14 = *(int *)(var_13 + -0x1a4);
  var_23 = *(type_9 **)(var_2 + -0x7c10);
  if (var_14 == *var_34) {
    return (int)var_8;
  }
  pcVar31 = rpl_getcwd;
  (*var_23)();
  var_31 = var_23 + 0x244c0;
  puVar6 = *(type_6 **)(var_23 + 0x1c8dc);
  *(type_6 **)(var_30 + -0xf4) = puVar6;
  *(type_9 **)(var_30 + -0x110) = var_31;
  *(type_9 **)(var_30 + -4) = pcVar31;
  *(type_5 **)(var_30 + -8) = var_13 + -0x1e0;
  *(type_4 **)(var_30 + -0xc) = var_19;
  *(type_4 **)(var_30 + -0x10) = unaff_s6;
  *(type_8 **)(var_30 + -0x14) = var_11;
  *(char **)(var_30 + -0x18) = var_22;
  *(type_4 **)(var_30 + -0x1c) = var_10;
  *(type_4 **)(var_30 + -0x20) = var_6;
  *(int **)(var_30 + -0x24) = var_34;
  *(type_4 **)(var_30 + -0x28) = var_8;
  *(type_4 **)(var_30 + 4) = var_25;
  *(int *)(var_30 + -0x100) = var_14;
  *(type_6 *)(var_30 + -0x2c) = *puVar6;
  if (var_25 == (type_4 *)0x0) {
    if (var_14 == 0) {
      *(type_6 *)(var_30 + -0xf8) = 0x1000;
LAB_0002cd88:
      var_2 = (**(type_9 **)(var_23 + 0x1c840))(*(type_6 *)(var_30 + -0xf8));
      var_31 = *(type_9 **)(var_30 + -0x110);
      *(int *)(var_30 + -0x108) = var_2;
      if (var_2 == 0) {
        var_35 = *(int **)(var_30 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar6 = (type_6 *)(**(type_9 **)(var_23 + 0x1c7f8))();
    var_31 = *(type_9 **)(var_30 + -0x110);
    *(type_6 *)(var_30 + -0x108) = 0;
    *puVar6 = 0x16;
  }
  else {
    if (*(int *)(var_30 + -0x100) == 0) {
      *(type_6 *)(var_30 + -0xf8) = *(type_6 *)(var_30 + 4);
      goto LAB_0002cd88;
    }
    *(type_6 *)(var_30 + -0xf8) = *(type_6 *)(var_30 + 4);
    *(type_6 *)(var_30 + -0x108) = *(type_6 *)(var_30 + -0x100);
LAB_0002cdbc:
    var_2 = *(int *)(var_30 + -0x108);
    var_13 = var_30 + -0xd0;
    var_27 = *(int *)(var_30 + -0xf8);
    var_23 = *(type_9 **)(var_31 + -0x7d60);
    var_25 = (type_4 *)(*(int *)(var_31 + -0x7fc8) + 0x6104);
    *(type_5 *)(var_2 + var_27 + -1) = 0;
    var_14 = (*var_23)(3,var_25,var_13);
    var_32 = *(int *)(var_30 + -0x110);
    if (-1 < var_14) {
      var_14 = *(int *)(var_32 + -0x7fc8);
      var_23 = *(type_9 **)(var_32 + -0x7d60);
      var_33 = *(int *)(var_30 + -0xc0);
      *(type_6 *)(var_30 + -0x104) = *(type_6 *)(var_30 + -0xd0);
      var_25 = (type_4 *)(var_14 + 0x6154);
      *(type_6 *)(var_30 + -0xfc) = *(type_6 *)(var_30 + -0xbc);
      var_14 = (*var_23)(3,var_25,var_13);
      var_32 = *(int *)(var_30 + -0x110);
      if (-1 < var_14) {
        var_34 = (int *)0x0;
        *(int *)(var_30 + -0xe0) = var_2 + var_27 + -1;
        var_10 = (type_4 *)0xffffff9c;
        *(type_6 *)(var_30 + -0xec) = *(type_6 *)(var_30 + -0xd0);
        *(type_6 *)(var_30 + -0xe4) = *(type_6 *)(var_30 + -0xc0);
        *(type_6 *)(var_30 + -0xdc) = *(type_6 *)(var_30 + -0xbc);
        *(int *)(var_30 + -0xe8) = *(int *)(var_32 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(var_30 + -0x104) == *(int *)(var_30 + -0xec)) &&
           (var_33 == *(int *)(var_30 + -0xe4))) {
          var_23 = *(type_9 **)(var_32 + -0x7cac);
          if (*(int *)(var_30 + -0xfc) == *(int *)(var_30 + -0xdc)) {
            if (var_34 != (int *)0x0) {
              var_2 = (**(type_9 **)(var_32 + -0x7d6c))(var_34);
              var_32 = *(int *)(var_30 + -0x110);
              if (var_2 != 0) goto LAB_0002d19c;
            }
            var_2 = *(int *)(var_30 + -0xe0);
            if (*(int *)(var_30 + -0xe0) ==
                *(int *)(var_30 + -0x108) + *(int *)(var_30 + -0xf8) + -1) {
              *(type_5 **)(var_30 + -0xe0) = (type_5 *)(var_2 + -1);
              *(type_5 *)(var_2 + -1) = 0x2f;
            }
            var_25 = *(type_4 **)(var_30 + -0xe0);
            var_8 = (type_4 *)((*(int *)(var_30 + -0x108) + *(int *)(var_30 + -0xf8)) - (int)var_25
                              );
            (**(type_9 **)(var_32 + -0x7bd0))(*(int *)(var_30 + -0x108),var_25,var_8);
            var_31 = *(type_9 **)(var_30 + -0x110);
            if (*(int *)(var_30 + 4) == 0) {
              var_25 = var_8;
              uVar32 = (**(type_9 **)(var_31 + -0x7c78))(*(type_6 *)(var_30 + -0x108));
              var_31 = *(type_9 **)(var_30 + -0x110);
              *(type_6 *)(var_30 + -0x100) = uVar32;
            }
            var_2 = *(int *)(var_30 + -0x100);
            if (*(int *)(var_30 + -0x100) == 0) {
              var_2 = *(int *)(var_30 + -0x108);
            }
            *(int *)(var_30 + -0x108) = var_2;
            goto LAB_0002d158;
          }
        }
        else {
          var_23 = *(type_9 **)(var_32 + -0x7cac);
        }
        var_18 = *(type_4 **)(var_30 + -0xe8);
        var_10 = (type_4 *)(*var_23)(var_10,var_18,0);
        if ((int)var_10 < 0) {
          var_6 = (type_4 *)(**(type_9 **)(*(int *)(var_30 + -0x110) + -0x7cc8))();
          var_31 = *(type_9 **)(var_30 + -0x110);
          var_8 = *(type_4 **)var_6;
          if (var_34 != (int *)0x0) {
            var_23 = *(type_9 **)(var_31 + -0x7d6c);
LAB_0002d138:
            (*var_23)(var_34);
            var_31 = *(type_9 **)(var_30 + -0x110);
          }
          var_23 = *(type_9 **)(var_31 + -0x7bd8);
          var_25 = var_18;
          if (*(int *)(var_30 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        var_18 = var_10;
        var_2 = (**(type_9 **)(*(int *)(var_30 + -0x110) + -0x7c40))(3,var_10,var_13);
        var_14 = *(int *)(var_30 + -0x110);
        if (var_2 == 0) {
          if (var_34 == (int *)0x0) {
LAB_0002cec4:
            var_23 = *(type_9 **)(var_14 + -0x7d1c);
            *(type_6 *)(var_30 + -0xf0) = *(type_6 *)(var_30 + -0xd0);
            *(type_6 *)(var_30 + -0xd8) = *(type_6 *)(var_30 + -0xc0);
            *(type_6 *)(var_30 + -0xd4) = *(type_6 *)(var_30 + -0xbc);
            var_34 = (int *)(*var_23)(var_10);
            var_6 = (type_4 *)(**(type_9 **)(*(int *)(var_30 + -0x110) + -0x7cc8))();
            var_2 = *(int *)(var_30 + -0x110);
            if (var_34 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              var_23 = *(type_9 **)(var_2 + -0x7d38);
LAB_0002cf18:
              var_6[0] = 0;
              var_6[1] = 0;
              var_6[2] = 0;
              var_6[3] = 0;
              var_35 = (int *)(*var_23)(var_34);
              var_2 = *(int *)(var_30 + -0x110);
              if (var_35 == (int *)0x0) {
                var_8 = *(type_4 **)var_6;
                var_23 = *(type_9 **)(var_2 + -0x7d6c);
                if (var_8 == (type_4 *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    var_8 = (type_4 *)0x2;
                    var_6[0] = 0;
                    var_6[1] = 0;
                    var_6[2] = 0;
                    var_6[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(type_9 **)(var_2 + -0x7d90))(var_34);
                  var_35 = (int *)(**(type_9 **)(*(int *)(var_30 + -0x110) + -0x7d38))(var_34);
                  var_2 = *(int *)(var_30 + -0x110);
                  if (var_35 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)var_35 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  var_8 = *(type_4 **)var_6;
                  var_23 = *(type_9 **)(var_2 + -0x7d6c);
                  if (var_8 == (type_4 *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)var_35 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(var_35 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          var_2 = (**(type_9 **)(var_14 + -0x7d6c))(var_34);
          var_14 = *(int *)(var_30 + -0x110);
          if (var_2 == 0) goto LAB_0002cec4;
          var_6 = (type_4 *)(**(type_9 **)(var_14 + -0x7cc8))();
          var_2 = *(int *)(var_30 + -0x110);
LAB_0002d208:
          var_8 = *(type_4 **)var_6;
        }
        else {
          var_6 = (type_4 *)(**(type_9 **)(var_14 + -0x7cc8))();
          var_2 = *(int *)(var_30 + -0x110);
          var_8 = *(type_4 **)var_6;
          if (var_34 != (int *)0x0) {
            (**(type_9 **)(var_2 + -0x7d6c))(var_34);
            var_2 = *(int *)(var_30 + -0x110);
          }
        }
        (**(type_9 **)(var_2 + -0x7d68))(var_10);
        var_31 = *(type_9 **)(var_30 + -0x110);
        var_25 = var_18;
        if (*(int *)(var_30 + -0x100) != 0) goto LAB_0002d150;
        var_23 = *(type_9 **)(var_31 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    var_6 = (type_4 *)(**(type_9 **)(var_32 + -0x7cc8))();
    var_8 = *(type_4 **)var_6;
    var_31 = *(type_9 **)(var_30 + -0x110);
    if (*(int *)(var_30 + -0x100) == 0) {
      var_23 = *(type_9 **)(var_31 + -0x7bd8);
LAB_0002d1e4:
      (*var_23)(*(type_6 *)(var_30 + -0x108));
      var_31 = *(type_9 **)(var_30 + -0x110);
    }
LAB_0002d150:
    *(type_4 **)var_6 = var_8;
    *(type_6 *)(var_30 + -0x108) = 0;
  }
LAB_0002d158:
  var_35 = *(int **)(var_30 + -0xf4);
LAB_0002d15c:
  var_2 = *(int *)(var_30 + -0x2c);
  if (var_2 != *var_35) {
    var_23 = *(type_9 **)(var_31 + -0x7c10);
    uVar32 = 0x2d36c;
    (*var_23)();
    *(type_9 **)(var_30 + -0x140) = var_23 + 0x23e70;
    *(type_6 *)(var_30 + -300) = uVar32;
    *(type_4 **)(var_30 + -0x130) = var_6;
    *(int **)(var_30 + -0x134) = var_34;
    *(type_4 **)(var_30 + -0x138) = var_8;
    if (var_2 == 0) {
      var_2 = -1;
      puVar6 = (type_6 *)(**(type_9 **)(var_23 + 0x1c1a8))();
      *puVar6 = 0x7a;
    }
    else if (var_2 == 10) {
      uVar32 = *(type_6 *)var_25;
      var_14 = (**(type_9 **)(var_23 + 0x1c2c8))(uVar32,*(int *)(var_23 + 0x1bea8) + 0x3e68);
      if (var_14 == 0) {
        var_2 = -1;
        (**(type_9 **)(*(int *)(var_30 + -0x140) + -0x7d34))(uVar32);
        var_23 = *(type_9 **)(*(int *)(var_30 + -0x140) + -0x7cc8);
        var_25[0] = 0;
        var_25[1] = 0;
        var_25[2] = 0;
        var_25[3] = 0;
        puVar6 = (type_6 *)(*var_23)();
        *puVar6 = 0x3d;
      }
    }
    return var_2;
  }
  return *(int *)(var_30 + -0x108);
code_r0x0002d0ec:
  var_23 = *(type_9 **)(var_2 + -0x7d38);
  if ((var_35[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  var_23 = *(type_9 **)(var_2 + -0x7c30);
  if (bVar1) {
    if (*var_35 == var_33) {
      var_14 = *(int *)(var_30 + -0x104);
      if (var_35[1] == *(int *)(var_30 + -0xfc)) {
        var_23 = *(type_9 **)(var_2 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      var_14 = *(int *)(var_30 + -0x104);
    }
    var_23 = *(type_9 **)(var_2 + -0x7d38);
    if (var_14 == *(int *)(var_30 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    var_23 = *(type_9 **)(var_2 + -0x7c30);
  }
LAB_0002cf5c:
  var_25 = (type_4 *)((int)var_35 + 0x13);
  *(type_6 *)(var_30 + -0x118) = 0x100;
  var_18 = var_10;
  var_14 = (*var_23)(3,var_10,var_25,var_13);
  var_2 = *(int *)(var_30 + -0x110);
  if (var_14 != 0) goto LAB_0002cf10;
  var_23 = *(type_9 **)(var_2 + -0x7d38);
  if (((((*(type_3 *)(var_30 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(var_30 + -0xd0) != *(int *)(var_30 + -0x104))) ||
      (*(int *)(var_30 + -0xc0) != var_33)) ||
     (*(int *)(var_30 + -0xbc) != *(int *)(var_30 + -0xfc))) goto LAB_0002cf18;
  var_21 = (type_4 *)(*(int *)(var_30 + -0xe0) - *(int *)(var_30 + -0x108));
  var_8 = (type_4 *)(**(type_9 **)(var_2 + -0x7ca4))(var_25);
  var_2 = *(int *)(var_30 + -0x110);
  if (var_21 <= var_8) {
    var_19 = *(type_4 **)(var_30 + -0xf8);
    if (*(int *)(var_30 + 4) != 0) {
      var_8 = (type_4 *)0x22;
      var_6[0] = 0;
      var_6[1] = 0;
      var_6[2] = 0;
      var_6[3] = 0x22;
      goto LAB_0002d134;
    }
    var_36 = var_19;
    if (var_19 < var_8) {
      var_36 = var_8;
    }
    var_37 = var_36 + (int)var_19;
    var_23 = *(type_9 **)(var_2 + -0x7c78);
    if (var_37 < var_19) {
LAB_0002d338:
      var_8 = (type_4 *)0xc;
      var_6[0] = 0;
      var_6[1] = 0;
      var_6[2] = 0;
      var_6[3] = 0xc;
LAB_0002d134:
      var_23 = *(type_9 **)(var_2 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(type_4 **)(var_30 + -0x104) = var_36;
    var_18 = var_37;
    var_14 = (*var_23)(*(type_6 *)(var_30 + -0x108));
    var_2 = *(int *)(var_30 + -0x110);
    if (var_14 == 0) goto LAB_0002d338;
    uVar32 = (**(type_9 **)(var_2 + -0x7be0))
                       (var_21 + var_14 + *(int *)(var_30 + -0x104),var_21 + var_14,
                        *(int *)(var_30 + -0xf8) - (int)var_21);
    var_2 = *(int *)(var_30 + -0x110);
    *(type_4 **)(var_30 + -0xf8) = var_37;
    *(type_6 *)(var_30 + -0xe0) = uVar32;
    *(int *)(var_30 + -0x108) = var_14;
  }
  var_2 = (**(type_9 **)(var_2 + -0x7be0))(*(int *)(var_30 + -0xe0) - (int)var_8,var_25,var_8);
  var_32 = *(int *)(var_30 + -0x110);
  var_33 = *(int *)(var_30 + -0xd8);
  *(int *)(var_30 + -0xe0) = var_2 + -1;
  *(type_5 *)(var_2 + -1) = 0x2f;
  *(type_6 *)(var_30 + -0xfc) = *(type_6 *)(var_30 + -0xd4);
  *(type_6 *)(var_30 + -0x104) = *(type_6 *)(var_30 + -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: (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)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (primitive_type) 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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (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 (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: (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: (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: (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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (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: (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))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) 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: (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)))) (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: (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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 (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: (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: (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)) 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: (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: (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: (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)) 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: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint uVar4;
  byte bVar8;
  undefined4 *puVar5;
  int *piVar6;
  byte *pbVar7;
  int *piVar9;
  int iVar10;
  int iVar11;
  byte *pbVar12;
  byte *pbVar13;
  undefined1 *puVar14;
  uint unaff_s1;
  byte *pbVar15;
  byte *pbVar16;
  undefined *unaff_s3;
  byte *pbVar17;
  undefined1 *unaff_s5;
  undefined1 *puVar18;
  byte *unaff_s6;
  byte *pbVar19;
  byte *pbVar20;
  undefined1 *puVar21;
  undefined *puVar22;
  code *pcVar23;
  int iVar24;
  int iVar25;
  undefined1 *puVar26;
  byte *pbVar27;
  int iVar28;
  code *pcVar29;
  code *pcVar30;
  undefined4 uVar31;
  undefined1 auStack_68 [24];
  byte *local_44;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar2 = PTR___stack_chk_guard_000495fc;
  puVar21 = auStack_68;
  pbVar19 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_000495fc;
  pbVar12 = param_2;
  pbVar13 = param_3;
  local_44 = (byte *)(*(code *)PTR_strlen_0004953c)(param_2);
  puVar22 = PTR_DAT_00049208;
  iVar11 = (int)(char)param_2[1];
  if (iVar11 != 0) {
    unaff_s5 = (undefined1 *)0x0;
    unaff_s1 = (uint)(param_1 - 0x3fU < 2);
    puVar3 = PTR_LAB_00049218 + 0x671c;
    local_34 = &local_30;
    puVar18 = auStack_68;
    unaff_s6 = pbVar19;
LAB_0002b75c:
    do {
      puVar21 = puVar18;
      unaff_s3 = puVar22;
      if (iVar11 == 0x5b) {
        if (*(int *)(puVar22 + -0x5830) == 0) {
          iVar11 = (*(code *)PTR_getenv_0004956c)(puVar3);
          uVar31 = 0xffffffff;
          if (iVar11 != 0) {
            uVar31 = 1;
          }
          *(undefined4 *)(puVar22 + -0x5830) = uVar31;
        }
        bVar8 = pbVar19[1];
        pbVar16 = pbVar19 + 1;
        if ((bVar8 == 0x21) || ((*(int *)(puVar22 + -0x5830) < 0 && (bVar8 == 0x5e)))) {
          bVar8 = pbVar19[2];
          pbVar16 = pbVar19 + 2;
        }
        if (bVar8 == 0x5d) {
          bVar8 = pbVar16[1];
          pbVar16 = pbVar16 + 1;
        }
        pbVar12 = (byte *)0x5d;
        while (pbVar19 = pbVar16 + 1, bVar8 != 0x5d) {
          if (bVar8 == 0) goto LAB_0002b7b4;
          pbVar16 = pbVar19;
          bVar8 = *pbVar19;
        }
        iVar11 = (int)(char)pbVar16[1];
      }
      else {
        pbVar12 = &DAT_c0000601;
        uVar4 = iVar11 - 0x21U & 0xff;
        pbVar13 = (byte *)(uint)(uVar4 < 0x20);
        if (pbVar13 == (byte *)0x0) {
          if ((iVar11 == 0x7c) && (unaff_s5 == (undefined1 *)0x0)) {
            pbVar16 = local_44;
            if (unaff_s1 == 0) {
              pbVar16 = pbVar19 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar16 + 7) & 0xfffffffc) - 4) break;
            pbVar13 = pbVar19 + -(int)unaff_s6;
            pbVar15 = pbVar19 + 1;
            iVar24 = -(((uint)(pbVar16 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar26 = puVar21 + iVar24;
            piVar6 = (int *)(puVar21 + iVar24 + 0x18);
            puVar18 = (undefined1 *)(*(code *)PTR_mempcpy_000495e4)(puVar21 + iVar24 + 0x1c);
            iVar11 = (int)(char)pbVar19[1];
            *puVar18 = 0;
            *piVar6 = 0;
            *local_34 = (int)piVar6;
            pbVar12 = unaff_s6;
            unaff_s6 = pbVar15;
            pbVar19 = pbVar15;
            puVar21 = puVar21 + iVar24;
            local_34 = piVar6;
            puVar18 = puVar26;
            if (iVar11 == 0) break;
            goto LAB_0002b75c;
          }
LAB_0002b918:
          iVar11 = (int)(char)pbVar19[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar4 & 0x1f)) << 0x1f) < 0) {
            iVar11 = (int)(char)pbVar19[1];
            if (iVar11 != 0x28) goto joined_r0x0002b91c;
            pbVar13 = (byte *)0x1;
            unaff_s5 = unaff_s5 + 1;
            pbVar19 = pbVar19 + 1;
            uVar4 = 7;
          }
          if (iVar11 != 0x29) goto LAB_0002b918;
          if (unaff_s5 == (undefined1 *)0x0) {
            if (1 < param_1 - 0x3fU) {
              local_44 = pbVar19 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar11 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar18 = (undefined1 *)
                        (*(code *)PTR_mempcpy_000495e4)
                                  (puVar21 + iVar11 + 0x1c,unaff_s6,(int)pbVar19 - (int)unaff_s6);
              *puVar18 = 0;
              *(undefined4 *)(puVar21 + iVar11 + 0x18) = 0;
              *local_34 = (int)(puVar21 + iVar11 + 0x18);
              if (local_30 == 0) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a14,PTR_LAB_00049218 + 0x7a00,
                                             0x454,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
              if (pbVar19[-1] != 0x29) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a24,PTR_LAB_00049218 + 0x7a00,
                                             0x455,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
              if (0x1f < param_1 - 0x21U) {
                pbVar19 = (byte *)(*(code *)PTR___assert_fail_00049460)
                                            (PTR_LAB_00049218 + 0x7a38,PTR_LAB_00049218 + 0x7a00,
                                             0x4ad,PTR_LAB_00049218 + 0x7d60);
                return pbVar19;
              }
                    /* WARNING: Could not emulate address calculation at 0x0002ba14 */
                    /* WARNING: Treating indirect jump as call */
              pbVar19 = (byte *)(*(code *)(&_gp_1 + *(int *)(PTR_LAB_00049218 +
                                                            (param_1 - 0x21U) * 4 + 0x7bf0)))();
              return pbVar19;
            }
            break;
          }
          iVar11 = (int)(char)pbVar19[1];
          unaff_s5 = unaff_s5 + -1;
        }
joined_r0x0002b91c:
        pbVar19 = pbVar19 + 1;
      }
      puVar18 = puVar21;
    } while (iVar11 != 0);
  }
LAB_0002b7b4:
  if (local_2c == *(byte **)puVar2) {
    return (byte *)0xffffffff;
  }
  pcVar29 = FUN_0002bd90;
  pbVar16 = local_2c;
  puVar22 = PTR___stack_chk_fail_000495d0;
  (*(code *)PTR___stack_chk_fail_000495d0)();
  puVar3 = puVar22 + 0x25450;
  puVar5 = *(undefined4 **)(puVar22 + 0x1d86c);
  *(undefined1 **)(puVar21 + -8) = auStack_68;
  *(undefined **)(puVar21 + -0x1c) = unaff_s3;
  *(undefined **)(puVar21 + -0x160) = puVar3;
  *(code **)(puVar21 + -4) = pcVar29;
  *(byte **)(puVar21 + -0xc) = pbVar19;
  *(byte **)(puVar21 + -0x10) = unaff_s6;
  *(undefined1 **)(puVar21 + -0x14) = unaff_s5;
  *(byte **)(puVar21 + -0x18) = param_3;
  *(undefined **)(puVar21 + -0x20) = puVar2;
  *(uint *)(puVar21 + -0x24) = unaff_s1;
  *(byte **)(puVar21 + -0x28) = param_2;
  *(undefined4 **)(puVar21 + -0x144) = puVar5;
  *(byte **)(puVar21 + -0x154) = pbVar16 + 1;
  pbVar15 = (byte *)(uint)*pbVar16;
  *(undefined4 *)(puVar21 + -0x2c) = *puVar5;
  pbVar20 = *(byte **)(puVar22 + 0x1d488);
  pbVar19 = pbVar13;
  pbVar27 = pbVar12;
  if (pbVar15 != (byte *)0x0) {
    uVar4 = *(uint *)(puVar21 + 0x10);
    unaff_s1 = uVar4 & 2;
    param_2 = (byte *)(uVar4 & 0x10);
    *(uint *)(puVar21 + -0x140) = uVar4 & 5;
    *(undefined4 *)(puVar21 + -0x148) = *(undefined4 *)(puVar22 + 0x1d478);
    *(byte **)(puVar21 + -0x14c) = pbVar20 + 0x7c70;
    *(int *)(puVar21 + -0x138) = *(int *)(puVar22 + 0x1d488) + -0x4960;
    *(int *)(puVar21 + -0x13c) = *(int *)(puVar22 + 0x1d488) + 0x671c;
    param_3 = pbVar16;
    unaff_s6 = param_4;
    do {
      pbVar16 = pbVar15;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar21 + -0x160);
        pbVar16 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar15 * 4 + 3);
      }
      if (((uint)(pbVar16 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x0002be84. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        pbVar19 = (byte *)(*(code *)(puVar3 + *(int *)(*(int *)(puVar21 + -0x14c) +
                                                      ((uint)(pbVar16 + -0x21) & 0xff) * 4)))();
        return pbVar19;
      }
      pbVar7 = (byte *)0x1;
      pbVar15 = pbVar16;
      if (pbVar27 == pbVar13) goto LAB_0002c064;
      pbVar15 = (byte *)(uint)*pbVar27;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar3 + -0x7d7c))();
        puVar3 = *(undefined **)(puVar21 + -0x160);
        pbVar15 = *(byte **)(*piVar6 + (int)pbVar15 * 4);
      }
      pbVar7 = (byte *)0x1;
      unaff_s6 = pbVar16;
      if (pbVar15 != pbVar16) goto LAB_0002c064;
      param_3 = *(byte **)(puVar21 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar15 = (byte *)(uint)*param_3;
      pbVar27 = pbVar27 + 1;
      *(byte **)(puVar21 + -0x154) = param_3 + 1;
    } while (pbVar15 != (byte *)0x0);
  }
  pbVar7 = (byte *)0x0;
  if (pbVar27 != pbVar13) {
    param_3 = (byte *)(*(uint *)(puVar21 + 0x10) & 8);
    if (param_3 == (byte *)0x0) {
      pbVar7 = (byte *)0x1;
    }
    else {
      pbVar7 = (byte *)(uint)(*pbVar27 != 0x2f);
    }
  }
LAB_0002c064:
  iVar11 = *(int *)(puVar21 + -0x2c);
  if (iVar11 == **(int **)(puVar21 + -0x144)) {
    return pbVar7;
  }
  pcVar29 = *(code **)(puVar3 + -0x7c10);
  pcVar30 = gnu_fnmatch;
  (*pcVar29)();
  puVar18 = puVar21 + -0x1e0;
  pcVar23 = *(code **)(pcVar29 + 0x1cbc4);
  *(uint *)(puVar21 + -0x19c) = unaff_s1;
  piVar6 = *(int **)(pcVar29 + 0x1cc28);
  *(byte **)(puVar21 + -0x180) = pbVar27;
  *(byte **)(puVar21 + -0x198) = pbVar15;
  *(code **)(puVar21 + -0x1c8) = pcVar29 + 0x2480c;
  *(code **)(puVar21 + -0x17c) = pcVar30;
  *(byte **)(puVar21 + -0x184) = pbVar20;
  *(byte **)(puVar21 + -0x188) = unaff_s6;
  *(undefined1 **)(puVar21 + -0x18c) = unaff_s5;
  *(byte **)(puVar21 + -400) = param_3;
  *(byte **)(puVar21 + -0x194) = pbVar13;
  *(byte **)(puVar21 + -0x1a0) = param_2;
  *(int *)(puVar21 + -0x1b4) = iVar11;
  *(byte **)(puVar21 + -0x1b8) = pbVar12;
  *(int *)(puVar21 + -0x1a4) = *piVar6;
  iVar11 = (*pcVar23)();
  iVar24 = *(int *)(puVar21 + -0x1c8);
  if (iVar11 == 1) {
LAB_0002ca44:
    pbVar12 = *(byte **)(puVar21 + -0x1b8);
    iVar11 = (**(code **)(iVar24 + -0x7ca4))(pbVar12);
    *(byte **)(puVar21 + -0x1d0) = pbVar19;
    pbVar16 = (byte *)FUN_0002bd90(*(undefined4 *)(puVar21 + -0x1b4),pbVar12,pbVar12 + iVar11,
                                   (uint)((int)pbVar19 << 0x1d) >> 0x1f);
    iVar11 = *(int *)(puVar21 + -0x1c8);
    puVar18 = puVar21 + -0x1e0;
  }
  else {
    puVar14 = puVar21 + -0x1ac;
    pcVar29 = *(code **)(iVar24 + -0x7ba4);
    unaff_s5 = puVar21 + -0x1b4;
    *(undefined4 *)(puVar21 + -0x1ac) = 0;
    *(undefined4 *)(puVar21 + -0x1a8) = 0;
    iVar11 = (*pcVar29)(0,unaff_s5,0,puVar14);
    pbVar13 = (byte *)(iVar11 + 1);
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (pbVar13 == (byte *)0x0) goto LAB_0002ca44;
    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);
    uVar31 = 0x129;
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (iVar11 == 0) goto LAB_0002ccf0;
    unaff_s6 = puVar21 + -0x1b8;
    pbVar12 = unaff_s6;
    param_3 = (byte *)(**(code **)(iVar24 + -0x7ba4))(0,unaff_s6,0,puVar14);
    pbVar20 = param_3 + 1;
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (pbVar20 == (byte *)0x0) goto LAB_0002ca44;
    iVar11 = (**(code **)(iVar24 + -0x7be8))(puVar14);
    iVar24 = *(int *)(puVar21 + -0x1c8);
    if (iVar11 == 0) {
      uVar31 = 0x12d;
      goto LAB_0002ccf0;
    }
    pbVar16 = pbVar13 + (int)pbVar20;
    if ((pbVar16 < pbVar13) || ((byte *)0x3fffffff < pbVar16)) {
LAB_0002cc10:
      pbVar16 = (byte *)0xffffffff;
      puVar5 = (undefined4 *)(**(code **)(iVar24 + -0x7cc8))();
      iVar11 = *(int *)(puVar21 + -0x1c8);
      *puVar5 = 0xc;
    }
    else if (pbVar16 < (byte *)0x7d0) {
      iVar10 = -((int)pbVar16 * 4 + 7U & 0xfffffff8);
      puVar18 = puVar21 + iVar10 + -0x1c8;
      pbVar15 = puVar18 + (int)pbVar13 * 4;
      (**(code **)(iVar24 + -0x7ba4))(puVar18,unaff_s5,pbVar13,puVar14);
      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) {
LAB_0002cd10:
        do {
          uVar31 = 0x147;
LAB_0002ccf0:
          (**(code **)(iVar24 + -0x7d80))
                    (*(int *)(iVar24 + -0x7fc8) + 0x7a70,*(int *)(iVar24 + -0x7fc8) + 0x7a60,uVar31,
                     *(int *)(iVar24 + -0x7fc8) + 0x7d78);
        } while( true );
      }
      (**(code **)(iVar24 + -0x7ba4))(pbVar15,unaff_s6,pbVar20,puVar14);
      *(byte **)(puVar21 + iVar10 + -0x1d0) = pbVar19;
      pbVar12 = pbVar15;
      pbVar16 = (byte *)FUN_0002aaa0(puVar18,pbVar15,pbVar15 + (int)param_3 * 4,
                                     (uint)((int)pbVar19 << 0x1d) >> 0x1f);
      iVar11 = *(int *)(puVar21 + -0x1c8);
      pbVar13 = pbVar15;
      unaff_s5 = puVar18;
      puVar18 = puVar21 + iVar10 + -0x1e0;
    }
    else {
      iVar11 = (**(code **)(iVar24 + -0x7c80))();
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) goto LAB_0002cc10;
      pcVar29 = *(code **)(iVar24 + -0x7ba4);
      *(int *)(puVar21 + -0x1bc) = iVar11;
      pbVar15 = (byte *)(iVar11 + (int)pbVar13 * 4);
      (*pcVar29)(iVar11,unaff_s5,pbVar13,puVar14);
      iVar11 = (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7be8))(puVar14);
      iVar24 = *(int *)(puVar21 + -0x1c8);
      if (iVar11 == 0) goto LAB_0002cd10;
      pcVar29 = *(code **)(iVar24 + -0x7ba4);
      *(undefined4 *)(puVar21 + -0x1bc) = *(undefined4 *)(puVar21 + -0x1bc);
      (*pcVar29)(pbVar15,unaff_s6,pbVar20,puVar14);
      *(byte **)(puVar21 + -0x1d0) = pbVar19;
      pbVar12 = pbVar15;
      pbVar16 = (byte *)FUN_0002aaa0(*(undefined4 *)(puVar21 + -0x1bc),pbVar15,
                                     pbVar15 + (int)param_3 * 4,(uint)((int)pbVar19 << 0x1d) >> 0x1f
                                    );
      (**(code **)(*(int *)(puVar21 + -0x1c8) + -0x7bd8))(*(undefined4 *)(puVar21 + -0x1bc));
      iVar11 = *(int *)(puVar21 + -0x1c8);
      pbVar13 = pbVar15;
      puVar18 = puVar21 + -0x1e0;
    }
  }
  iVar24 = *(int *)(puVar21 + -0x1a4);
  pcVar29 = *(code **)(iVar11 + -0x7c10);
  if (iVar24 == *piVar6) {
    return pbVar16;
  }
  pcVar30 = rpl_getcwd;
  (*pcVar29)();
  pcVar23 = pcVar29 + 0x244c0;
  puVar5 = *(undefined4 **)(pcVar29 + 0x1c8dc);
  *(undefined4 **)(puVar18 + -0xf4) = puVar5;
  *(code **)(puVar18 + -0x110) = pcVar23;
  *(code **)(puVar18 + -4) = pcVar30;
  *(undefined1 **)(puVar18 + -8) = puVar21 + -0x1e0;
  *(byte **)(puVar18 + -0xc) = pbVar20;
  *(byte **)(puVar18 + -0x10) = unaff_s6;
  *(undefined1 **)(puVar18 + -0x14) = unaff_s5;
  *(byte **)(puVar18 + -0x18) = param_3;
  *(byte **)(puVar18 + -0x1c) = pbVar13;
  *(byte **)(puVar18 + -0x20) = pbVar19;
  *(int **)(puVar18 + -0x24) = piVar6;
  *(byte **)(puVar18 + -0x28) = pbVar16;
  *(byte **)(puVar18 + 4) = pbVar12;
  *(int *)(puVar18 + -0x100) = iVar24;
  *(undefined4 *)(puVar18 + -0x2c) = *puVar5;
  if (pbVar12 == (byte *)0x0) {
    if (iVar24 == 0) {
      *(undefined4 *)(puVar18 + -0xf8) = 0x1000;
LAB_0002cd88:
      iVar11 = (**(code **)(pcVar29 + 0x1c840))(*(undefined4 *)(puVar18 + -0xf8));
      pcVar23 = *(code **)(puVar18 + -0x110);
      *(int *)(puVar18 + -0x108) = iVar11;
      if (iVar11 == 0) {
        piVar9 = *(int **)(puVar18 + -0xf4);
        goto LAB_0002d15c;
      }
      goto LAB_0002cdbc;
    }
    puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c7f8))();
    pcVar23 = *(code **)(puVar18 + -0x110);
    *(undefined4 *)(puVar18 + -0x108) = 0;
    *puVar5 = 0x16;
  }
  else {
    if (*(int *)(puVar18 + -0x100) == 0) {
      *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);
      goto LAB_0002cd88;
    }
    *(undefined4 *)(puVar18 + -0xf8) = *(undefined4 *)(puVar18 + 4);
    *(undefined4 *)(puVar18 + -0x108) = *(undefined4 *)(puVar18 + -0x100);
LAB_0002cdbc:
    iVar11 = *(int *)(puVar18 + -0x108);
    puVar21 = puVar18 + -0xd0;
    iVar10 = *(int *)(puVar18 + -0xf8);
    pcVar29 = *(code **)(pcVar23 + -0x7d60);
    pbVar12 = (byte *)(*(int *)(pcVar23 + -0x7fc8) + 0x6104);
    *(undefined1 *)(iVar11 + iVar10 + -1) = 0;
    iVar24 = (*pcVar29)(3,pbVar12,puVar21);
    iVar25 = *(int *)(puVar18 + -0x110);
    if (-1 < iVar24) {
      iVar24 = *(int *)(iVar25 + -0x7fc8);
      pcVar29 = *(code **)(iVar25 + -0x7d60);
      iVar28 = *(int *)(puVar18 + -0xc0);
      *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xd0);
      pbVar12 = (byte *)(iVar24 + 0x6154);
      *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xbc);
      iVar24 = (*pcVar29)(3,pbVar12,puVar21);
      iVar25 = *(int *)(puVar18 + -0x110);
      if (-1 < iVar24) {
        piVar6 = (int *)0x0;
        *(int *)(puVar18 + -0xe0) = iVar11 + iVar10 + -1;
        pbVar13 = (byte *)0xffffff9c;
        *(undefined4 *)(puVar18 + -0xec) = *(undefined4 *)(puVar18 + -0xd0);
        *(undefined4 *)(puVar18 + -0xe4) = *(undefined4 *)(puVar18 + -0xc0);
        *(undefined4 *)(puVar18 + -0xdc) = *(undefined4 *)(puVar18 + -0xbc);
        *(int *)(puVar18 + -0xe8) = *(int *)(iVar25 + -0x7fc8) + 0x6630;
LAB_0002ce58:
        if ((*(int *)(puVar18 + -0x104) == *(int *)(puVar18 + -0xec)) &&
           (iVar28 == *(int *)(puVar18 + -0xe4))) {
          pcVar29 = *(code **)(iVar25 + -0x7cac);
          if (*(int *)(puVar18 + -0xfc) == *(int *)(puVar18 + -0xdc)) {
            if (piVar6 != (int *)0x0) {
              iVar11 = (**(code **)(iVar25 + -0x7d6c))(piVar6);
              iVar25 = *(int *)(puVar18 + -0x110);
              if (iVar11 != 0) goto LAB_0002d19c;
            }
            iVar11 = *(int *)(puVar18 + -0xe0);
            if (*(int *)(puVar18 + -0xe0) ==
                *(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8) + -1) {
              *(undefined1 **)(puVar18 + -0xe0) = (undefined1 *)(iVar11 + -1);
              *(undefined1 *)(iVar11 + -1) = 0x2f;
            }
            pbVar12 = *(byte **)(puVar18 + -0xe0);
            pbVar16 = (byte *)((*(int *)(puVar18 + -0x108) + *(int *)(puVar18 + -0xf8)) -
                              (int)pbVar12);
            (**(code **)(iVar25 + -0x7bd0))(*(int *)(puVar18 + -0x108),pbVar12,pbVar16);
            pcVar23 = *(code **)(puVar18 + -0x110);
            if (*(int *)(puVar18 + 4) == 0) {
              pbVar12 = pbVar16;
              uVar31 = (**(code **)(pcVar23 + -0x7c78))(*(undefined4 *)(puVar18 + -0x108));
              pcVar23 = *(code **)(puVar18 + -0x110);
              *(undefined4 *)(puVar18 + -0x100) = uVar31;
            }
            iVar11 = *(int *)(puVar18 + -0x100);
            if (*(int *)(puVar18 + -0x100) == 0) {
              iVar11 = *(int *)(puVar18 + -0x108);
            }
            *(int *)(puVar18 + -0x108) = iVar11;
            goto LAB_0002d158;
          }
        }
        else {
          pcVar29 = *(code **)(iVar25 + -0x7cac);
        }
        pbVar15 = *(byte **)(puVar18 + -0xe8);
        pbVar13 = (byte *)(*pcVar29)(pbVar13,pbVar15,0);
        if ((int)pbVar13 < 0) {
          pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();
          pcVar23 = *(code **)(puVar18 + -0x110);
          pbVar16 = *(byte **)pbVar19;
          if (piVar6 != (int *)0x0) {
            pcVar29 = *(code **)(pcVar23 + -0x7d6c);
LAB_0002d138:
            (*pcVar29)(piVar6);
            pcVar23 = *(code **)(puVar18 + -0x110);
          }
          pcVar29 = *(code **)(pcVar23 + -0x7bd8);
          pbVar12 = pbVar15;
          if (*(int *)(puVar18 + -0x100) == 0) goto LAB_0002d1e4;
          goto LAB_0002d150;
        }
        pbVar15 = pbVar13;
        iVar11 = (**(code **)(*(int *)(puVar18 + -0x110) + -0x7c40))(3,pbVar13,puVar21);
        iVar24 = *(int *)(puVar18 + -0x110);
        if (iVar11 == 0) {
          if (piVar6 == (int *)0x0) {
LAB_0002cec4:
            pcVar29 = *(code **)(iVar24 + -0x7d1c);
            *(undefined4 *)(puVar18 + -0xf0) = *(undefined4 *)(puVar18 + -0xd0);
            *(undefined4 *)(puVar18 + -0xd8) = *(undefined4 *)(puVar18 + -0xc0);
            *(undefined4 *)(puVar18 + -0xd4) = *(undefined4 *)(puVar18 + -0xbc);
            piVar6 = (int *)(*pcVar29)(pbVar13);
            pbVar19 = (byte *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7cc8))();
            iVar11 = *(int *)(puVar18 + -0x110);
            if (piVar6 != (int *)0x0) {
              bVar1 = true;
LAB_0002cf10:
              pcVar29 = *(code **)(iVar11 + -0x7d38);
LAB_0002cf18:
              pbVar19[0] = 0;
              pbVar19[1] = 0;
              pbVar19[2] = 0;
              pbVar19[3] = 0;
              piVar9 = (int *)(*pcVar29)(piVar6);
              iVar11 = *(int *)(puVar18 + -0x110);
              if (piVar9 == (int *)0x0) {
                pbVar16 = *(byte **)pbVar19;
                pcVar29 = *(code **)(iVar11 + -0x7d6c);
                if (pbVar16 == (byte *)0x0) {
                  if (!bVar1) {
LAB_0002d128:
                    pbVar16 = (byte *)0x2;
                    pbVar19[0] = 0;
                    pbVar19[1] = 0;
                    pbVar19[2] = 0;
                    pbVar19[3] = 2;
                    goto LAB_0002d134;
                  }
                  (**(code **)(iVar11 + -0x7d90))(piVar6);
                  piVar9 = (int *)(**(code **)(*(int *)(puVar18 + -0x110) + -0x7d38))(piVar6);
                  iVar11 = *(int *)(puVar18 + -0x110);
                  if (piVar9 != (int *)0x0) {
                    bVar1 = false;
                    if (*(char *)((int)piVar9 + 0x13) == '.') goto LAB_0002d0e0;
                    goto LAB_0002cf58;
                  }
                  pbVar16 = *(byte **)pbVar19;
                  pcVar29 = *(code **)(iVar11 + -0x7d6c);
                  if (pbVar16 == (byte *)0x0) goto LAB_0002d128;
                }
                goto LAB_0002d138;
              }
              if (*(char *)((int)piVar9 + 0x13) != '.') goto LAB_0002cf34;
LAB_0002d0e0:
              if (*(char *)(piVar9 + 5) != '\0') goto code_r0x0002d0ec;
              goto LAB_0002cf10;
            }
            goto LAB_0002d208;
          }
          iVar11 = (**(code **)(iVar24 + -0x7d6c))(piVar6);
          iVar24 = *(int *)(puVar18 + -0x110);
          if (iVar11 == 0) goto LAB_0002cec4;
          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();
          iVar11 = *(int *)(puVar18 + -0x110);
LAB_0002d208:
          pbVar16 = *(byte **)pbVar19;
        }
        else {
          pbVar19 = (byte *)(**(code **)(iVar24 + -0x7cc8))();
          iVar11 = *(int *)(puVar18 + -0x110);
          pbVar16 = *(byte **)pbVar19;
          if (piVar6 != (int *)0x0) {
            (**(code **)(iVar11 + -0x7d6c))(piVar6);
            iVar11 = *(int *)(puVar18 + -0x110);
          }
        }
        (**(code **)(iVar11 + -0x7d68))(pbVar13);
        pcVar23 = *(code **)(puVar18 + -0x110);
        pbVar12 = pbVar15;
        if (*(int *)(puVar18 + -0x100) != 0) goto LAB_0002d150;
        pcVar29 = *(code **)(pcVar23 + -0x7bd8);
        goto LAB_0002d1e4;
      }
    }
LAB_0002d19c:
    pbVar19 = (byte *)(**(code **)(iVar25 + -0x7cc8))();
    pbVar16 = *(byte **)pbVar19;
    pcVar23 = *(code **)(puVar18 + -0x110);
    if (*(int *)(puVar18 + -0x100) == 0) {
      pcVar29 = *(code **)(pcVar23 + -0x7bd8);
LAB_0002d1e4:
      (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));
      pcVar23 = *(code **)(puVar18 + -0x110);
    }
LAB_0002d150:
    *(byte **)pbVar19 = pbVar16;
    *(undefined4 *)(puVar18 + -0x108) = 0;
  }
LAB_0002d158:
  piVar9 = *(int **)(puVar18 + -0xf4);
LAB_0002d15c:
  pbVar13 = *(byte **)(puVar18 + -0x2c);
  if (pbVar13 != (byte *)*piVar9) {
    pcVar29 = *(code **)(pcVar23 + -0x7c10);
    uVar31 = 0x2d36c;
    (*pcVar29)();
    *(code **)(puVar18 + -0x140) = pcVar29 + 0x23e70;
    *(undefined4 *)(puVar18 + -300) = uVar31;
    *(byte **)(puVar18 + -0x130) = pbVar19;
    *(int **)(puVar18 + -0x134) = piVar6;
    *(byte **)(puVar18 + -0x138) = pbVar16;
    if (pbVar13 == (byte *)0x0) {
      pbVar13 = (byte *)0xffffffff;
      puVar5 = (undefined4 *)(**(code **)(pcVar29 + 0x1c1a8))();
      *puVar5 = 0x7a;
    }
    else if (pbVar13 == (byte *)0xa) {
      uVar31 = *(undefined4 *)pbVar12;
      iVar11 = (**(code **)(pcVar29 + 0x1c2c8))(uVar31,*(int *)(pcVar29 + 0x1bea8) + 0x3e68);
      if (iVar11 == 0) {
        pbVar13 = (byte *)0xffffffff;
        (**(code **)(*(int *)(puVar18 + -0x140) + -0x7d34))(uVar31);
        pcVar29 = *(code **)(*(int *)(puVar18 + -0x140) + -0x7cc8);
        pbVar12[0] = 0;
        pbVar12[1] = 0;
        pbVar12[2] = 0;
        pbVar12[3] = 0;
        puVar5 = (undefined4 *)(*pcVar29)();
        *puVar5 = 0x3d;
      }
    }
    return pbVar13;
  }
  return *(byte **)(puVar18 + -0x108);
code_r0x0002d0ec:
  pcVar29 = *(code **)(iVar11 + -0x7d38);
  if ((piVar9[5] & 0xffff0000U) == 0x2e000000) goto LAB_0002cf18;
LAB_0002cf34:
  pcVar29 = *(code **)(iVar11 + -0x7c30);
  if (bVar1) {
    if (*piVar9 == iVar28) {
      iVar24 = *(int *)(puVar18 + -0x104);
      if (piVar9[1] == *(int *)(puVar18 + -0xfc)) {
        pcVar29 = *(code **)(iVar11 + -0x7c30);
        goto LAB_0002cf5c;
      }
    }
    else {
      iVar24 = *(int *)(puVar18 + -0x104);
    }
    pcVar29 = *(code **)(iVar11 + -0x7d38);
    if (iVar24 == *(int *)(puVar18 + -0xf0)) goto LAB_0002cf18;
LAB_0002cf58:
    pcVar29 = *(code **)(iVar11 + -0x7c30);
  }
LAB_0002cf5c:
  pbVar12 = (byte *)((int)piVar9 + 0x13);
  *(undefined4 *)(puVar18 + -0x118) = 0x100;
  pbVar15 = pbVar13;
  iVar24 = (*pcVar29)(3,pbVar13,pbVar12,puVar21);
  iVar11 = *(int *)(puVar18 + -0x110);
  if (iVar24 != 0) goto LAB_0002cf10;
  pcVar29 = *(code **)(iVar11 + -0x7d38);
  if (((((*(uint *)(puVar18 + -0xb8) & 0xf000) != 0x4000) ||
       (*(int *)(puVar18 + -0xd0) != *(int *)(puVar18 + -0x104))) ||
      (*(int *)(puVar18 + -0xc0) != iVar28)) ||
     (*(int *)(puVar18 + -0xbc) != *(int *)(puVar18 + -0xfc))) goto LAB_0002cf18;
  pbVar27 = (byte *)(*(int *)(puVar18 + -0xe0) - *(int *)(puVar18 + -0x108));
  pbVar16 = (byte *)(**(code **)(iVar11 + -0x7ca4))(pbVar12);
  iVar11 = *(int *)(puVar18 + -0x110);
  if (pbVar27 <= pbVar16) {
    pbVar20 = *(byte **)(puVar18 + -0xf8);
    if (*(int *)(puVar18 + 4) != 0) {
      pbVar16 = (byte *)0x22;
      pbVar19[0] = 0;
      pbVar19[1] = 0;
      pbVar19[2] = 0;
      pbVar19[3] = 0x22;
      goto LAB_0002d134;
    }
    pbVar7 = pbVar20;
    if (pbVar20 < pbVar16) {
      pbVar7 = pbVar16;
    }
    pbVar17 = pbVar7 + (int)pbVar20;
    pcVar29 = *(code **)(iVar11 + -0x7c78);
    if (pbVar17 < pbVar20) {
LAB_0002d338:
      pbVar16 = (byte *)0xc;
      pbVar19[0] = 0;
      pbVar19[1] = 0;
      pbVar19[2] = 0;
      pbVar19[3] = 0xc;
LAB_0002d134:
      pcVar29 = *(code **)(iVar11 + -0x7d6c);
      goto LAB_0002d138;
    }
    *(byte **)(puVar18 + -0x104) = pbVar7;
    pbVar15 = pbVar17;
    iVar24 = (*pcVar29)(*(undefined4 *)(puVar18 + -0x108));
    iVar11 = *(int *)(puVar18 + -0x110);
    if (iVar24 == 0) goto LAB_0002d338;
    uVar31 = (**(code **)(iVar11 + -0x7be0))
                       (pbVar27 + iVar24 + *(int *)(puVar18 + -0x104),pbVar27 + iVar24,
                        *(int *)(puVar18 + -0xf8) - (int)pbVar27);
    iVar11 = *(int *)(puVar18 + -0x110);
    *(byte **)(puVar18 + -0xf8) = pbVar17;
    *(undefined4 *)(puVar18 + -0xe0) = uVar31;
    *(int *)(puVar18 + -0x108) = iVar24;
  }
  iVar11 = (**(code **)(iVar11 + -0x7be0))(*(int *)(puVar18 + -0xe0) - (int)pbVar16,pbVar12,pbVar16)
  ;
  iVar25 = *(int *)(puVar18 + -0x110);
  iVar28 = *(int *)(puVar18 + -0xd8);
  *(int *)(puVar18 + -0xe0) = iVar11 + -1;
  *(undefined1 *)(iVar11 + -1) = 0x2f;
  *(undefined4 *)(puVar18 + -0xfc) = *(undefined4 *)(puVar18 + -0xd4);
  *(undefined4 *)(puVar18 + -0x104) = *(undefined4 *)(puVar18 + -0xf0);
  goto LAB_0002ce58;
}

