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

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  byte bVar8;
  undefined1 *puVar4;
  undefined4 *puVar5;
  int *piVar6;
  int iVar7;
  int iVar9;
  int iVar10;
  int iVar11;
  byte *pbVar12;
  byte *pbVar13;
  undefined4 uVar14;
  patternlist *ppVar15;
  undefined1 *puVar16;
  uint unaff_s1;
  byte *pbVar17;
  byte *pbVar18;
  undefined *unaff_s3;
  int unaff_s5;
  undefined1 *puVar19;
  wchar_t *pattern_00;
  byte *unaff_s6;
  byte *pbVar20;
  undefined *puVar21;
  code *pcVar22;
  int iVar23;
  undefined1 *puVar24;
  undefined1 *puVar25;
  byte *pbVar26;
  code *pcVar27;
  code *pcVar28;
  undefined1 auStack_68 [24];
  byte *local_44;
  patternlist *local_34;
  patternlist *list;
  byte *local_2c;
  
  puVar1 = PTR___stack_chk_guard_0002f30c;
  puVar24 = auStack_68;
  pbVar20 = (byte *)(pattern + 1);
  list = (patternlist *)0x0;
  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;
  pbVar12 = (byte *)pattern;
  pbVar13 = (byte *)string;
  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern);
  puVar21 = PTR___progname_0002f108;
  iVar9 = (int)pattern[1];
  if (iVar9 != 0) {
    unaff_s5 = 0;
    unaff_s1 = (uint)(opt - 0x3fU < 2);
    puVar2 = PTR_DAT_0002f118 + -0x231c;
    local_34 = (patternlist *)&list;
    puVar4 = auStack_68;
    unaff_s6 = pbVar20;
    do {
      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {
        if (*(int *)(puVar21 + -0xb20) == 0) {
          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);
          uVar14 = 0xffffffff;
          if (iVar9 != 0) {
            uVar14 = 1;
          }
          *(undefined4 *)(puVar21 + -0xb20) = uVar14;
        }
        bVar8 = pbVar20[1];
        pbVar18 = pbVar20 + 1;
        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e)))) {
          bVar8 = pbVar20[2];
          pbVar18 = pbVar20 + 2;
        }
        if (bVar8 == 0x5d) {
          bVar8 = pbVar18[1];
          pbVar18 = pbVar18 + 1;
        }
        pbVar12 = (byte *)0x5d;
        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {
          if (bVar8 == 0) goto LAB_000182c4;
          pbVar18 = pbVar20;
          bVar8 = *pbVar20;
        }
        iVar9 = (int)(char)pbVar18[1];
joined_r0x00018418:
        puVar4 = puVar24;
        if (iVar9 == 0) goto LAB_000182c4;
      }
      pbVar12 = &DAT_c0000601;
      uVar3 = iVar9 - 0x21U & 0xff;
      pbVar13 = (byte *)(uint)(uVar3 < 0x20);
      if (pbVar13 != (byte *)0x0) {
        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
          iVar9 = (int)(char)pbVar20[1];
          if (iVar9 != 0x28) goto joined_r0x0001842c;
          pbVar13 = (byte *)0x1;
          unaff_s5 = unaff_s5 + 1;
          pbVar20 = pbVar20 + 1;
          uVar3 = 7;
        }
        if (iVar9 != 0x29) goto LAB_00018428;
        if (unaff_s5 != 0) {
          iVar9 = (int)(char)pbVar20[1];
          unaff_s5 = unaff_s5 + -1;
joined_r0x0001842c:
          pbVar20 = pbVar20 + 1;
          goto joined_r0x00018418;
        }
        if (1 < opt - 0x3fU) {
          local_44 = pbVar20 + (1 - (int)unaff_s6);
        }
        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
          puVar4 = (undefined1 *)
                   (*(code *)PTR_mempcpy_0002f2fc)
                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);
          *puVar4 = 0;
          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;
          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);
          if (list == (patternlist *)0x0) {
            iVar9 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,
                               PTR_DAT_0002f118 + -0x1fa0);
            return iVar9;
          }
          if (pbVar20[-1] == 0x29) {
            if (opt - 0x21U < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00018524 */
                    /* WARNING: Treating indirect jump as call */
              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()
              ;
              return iVar9;
            }
            iVar9 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,
                               PTR_DAT_0002f118 + -0x1fa0);
            return iVar9;
          }
          iVar9 = (*(code *)PTR___assert_fail_0002f218)
                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,
                             PTR_DAT_0002f118 + -0x1fa0);
          return iVar9;
        }
        break;
      }
      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {
LAB_00018428:
        iVar9 = (int)(char)pbVar20[1];
        goto joined_r0x0001842c;
      }
      pbVar18 = local_44;
      if (unaff_s1 == 0) {
        pbVar18 = pbVar20 + (1 - (int)unaff_s6);
      }
      if (0x1f3b < ((uint)(pbVar18 + 7) & 0xfffffffc) - 4) break;
      pbVar13 = pbVar20 + -(int)unaff_s6;
      pbVar17 = pbVar20 + 1;
      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
      puVar25 = puVar24 + iVar10;
      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);
      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);
      iVar9 = (int)(char)pbVar20[1];
      *puVar4 = 0;
      ppVar15->next = (patternlist *)0x0;
      local_34->next = ppVar15;
      pbVar12 = unaff_s6;
      unaff_s6 = pbVar17;
      pbVar20 = pbVar17;
      puVar24 = puVar24 + iVar10;
      local_34 = ppVar15;
      puVar4 = puVar25;
    } while (iVar9 != 0);
  }
LAB_000182c4:
  if (local_2c == *(byte **)puVar1) {
    return -1;
  }
  pcVar27 = internal_fnmatch;
  pbVar18 = local_2c;
  puVar21 = PTR___stack_chk_fail_0002f2f0;
  (*(code *)PTR___stack_chk_fail_0002f2f0)();
  puVar2 = puVar21 + 0x1e840;
  puVar5 = *(undefined4 **)(puVar21 + 0x16a6c);
  *(undefined1 **)(puVar24 + -8) = auStack_68;
  *(undefined **)(puVar24 + -0x1c) = unaff_s3;
  *(undefined **)(puVar24 + -0x160) = puVar2;
  *(code **)(puVar24 + -4) = pcVar27;
  *(byte **)(puVar24 + -0xc) = pbVar20;
  *(byte **)(puVar24 + -0x10) = unaff_s6;
  *(int *)(puVar24 + -0x14) = unaff_s5;
  *(char **)(puVar24 + -0x18) = string;
  *(undefined **)(puVar24 + -0x20) = puVar1;
  *(uint *)(puVar24 + -0x24) = unaff_s1;
  *(char **)(puVar24 + -0x28) = pattern;
  *(undefined4 **)(puVar24 + -0x144) = puVar5;
  *(byte **)(puVar24 + -0x154) = pbVar18 + 1;
  pbVar17 = (byte *)(uint)*pbVar18;
  *(undefined4 *)(puVar24 + -0x2c) = *puVar5;
  iVar9 = *(int *)(puVar21 + 0x16878);
  pbVar20 = pbVar13;
  pbVar26 = pbVar12;
  if (pbVar17 != (byte *)0x0) {
    uVar3 = *(uint *)(puVar24 + 0x10);
    unaff_s1 = uVar3 & 2;
    pattern = (char *)(uVar3 & 0x10);
    *(uint *)(puVar24 + -0x140) = uVar3 & 5;
    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);
    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;
    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;
    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;
    string = (char *)pbVar18;
    unaff_s6 = (byte *)string_end;
    do {
      pbVar18 = pbVar17;
      if (pattern != (char *)0x0) {
        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar24 + -0x160);
        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);
      }
      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +
                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();
        return iVar9;
      }
      uVar3 = 1;
      pbVar17 = pbVar18;
      if (pbVar26 == pbVar13) goto LAB_00018b74;
      pbVar17 = (byte *)(uint)*pbVar26;
      if (pattern != (char *)0x0) {
        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar24 + -0x160);
        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);
      }
      uVar3 = 1;
      unaff_s6 = pbVar18;
      if (pbVar17 != pbVar18) goto LAB_00018b74;
      string = *(char **)(puVar24 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar17 = (byte *)(uint)(byte)*string;
      pbVar26 = pbVar26 + 1;
      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;
    } while (pbVar17 != (byte *)0x0);
  }
  uVar3 = 0;
  if (pbVar26 != pbVar13) {
    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);
    if ((byte *)string == (byte *)0x0) {
      uVar3 = 1;
    }
    else {
      uVar3 = (uint)(*pbVar26 != 0x2f);
    }
  }
LAB_00018b74:
  iVar10 = *(int *)(puVar24 + -0x2c);
  if (iVar10 == **(int **)(puVar24 + -0x144)) {
    return uVar3;
  }
  pcVar27 = *(code **)(puVar2 + -0x7df0);
  pcVar28 = gnu_fnmatch;
  (*pcVar27)();
  puVar4 = puVar24 + -0x1e0;
  pcVar22 = *(code **)(pcVar27 + 0x15df8);
  *(uint *)(puVar24 + -0x19c) = unaff_s1;
  piVar6 = *(int **)(pcVar27 + 0x15e28);
  *(byte **)(puVar24 + -0x180) = pbVar26;
  *(byte **)(puVar24 + -0x198) = pbVar17;
  *(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc;
  *(code **)(puVar24 + -0x17c) = pcVar28;
  *(int *)(puVar24 + -0x184) = iVar9;
  *(byte **)(puVar24 + -0x188) = unaff_s6;
  *(int *)(puVar24 + -0x18c) = unaff_s5;
  *(char **)(puVar24 + -400) = string;
  *(byte **)(puVar24 + -0x194) = pbVar13;
  *(char **)(puVar24 + -0x1a0) = pattern;
  *(int *)(puVar24 + -0x1b4) = iVar10;
  *(byte **)(puVar24 + -0x1b8) = pbVar12;
  *(int *)(puVar24 + -0x1a4) = *piVar6;
  iVar9 = (*pcVar22)();
  iVar10 = *(int *)(puVar24 + -0x1c8);
  if (iVar9 != 1) {
    puVar16 = puVar24 + -0x1ac;
    pcVar27 = *(code **)(iVar10 + -0x7dac);
    puVar19 = puVar24 + -0x1b4;
    *(undefined4 *)(puVar24 + -0x1ac) = 0;
    *(undefined4 *)(puVar24 + -0x1a8) = 0;
    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);
    pbVar13 = (byte *)(iVar9 + 1);
    iVar10 = *(int *)(puVar24 + -0x1c8);
    if (pbVar13 != (byte *)0x0) {
      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);
      uVar14 = 0x129;
      iVar10 = *(int *)(puVar24 + -0x1c8);
      if (iVar9 == 0) goto LAB_00019800;
      pbVar18 = puVar24 + -0x1b8;
      pbVar12 = pbVar18;
      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);
      pbVar17 = (byte *)string + 1;
      iVar10 = *(int *)(puVar24 + -0x1c8);
      if (pbVar17 != (byte *)0x0) {
        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);
        iVar10 = *(int *)(puVar24 + -0x1c8);
        if (iVar9 == 0) {
          uVar14 = 0x12d;
          goto LAB_00019800;
        }
        pbVar26 = pbVar13 + (int)pbVar17;
        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {
          if (pbVar26 < (byte *)0x7d0) {
            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);
            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);
            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);
            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);
            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);
            iVar10 = *(int *)(puVar24 + -0x1c8);
            if (iVar9 == 0) {
LAB_00019820:
              do {
                uVar14 = 0x147;
LAB_00019800:
                (**(code **)(iVar10 + -0x7ec8))
                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac
                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);
              } while( true );
            }
            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);
            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;
            pbVar12 = pbVar26;
            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,
                                      (wchar_t *)(pbVar26 + (int)string * 4),
                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),
                                      *(int *)(puVar24 + iVar11 + -0x1d0));
            iVar10 = *(int *)(puVar24 + -0x1c8);
            pbVar13 = pbVar26;
            puVar4 = puVar24 + iVar11 + -0x1e0;
            goto LAB_00019590;
          }
          iVar9 = (**(code **)(iVar10 + -0x7e28))();
          iVar10 = *(int *)(puVar24 + -0x1c8);
          if (iVar9 != 0) {
            pcVar27 = *(code **)(iVar10 + -0x7dac);
            *(int *)(puVar24 + -0x1bc) = iVar9;
            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);
            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);
            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);
            iVar10 = *(int *)(puVar24 + -0x1c8);
            if (iVar9 == 0) goto LAB_00019820;
            pcVar27 = *(code **)(iVar10 + -0x7dac);
            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);
            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);
            *(byte **)(puVar24 + -0x1d0) = pbVar20;
            pbVar12 = pbVar26;
            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,
                                      (wchar_t *)(pbVar26 + (int)string * 4),
                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),
                                      *(int *)(puVar24 + -0x1d0));
            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));
            iVar10 = *(int *)(puVar24 + -0x1c8);
            pbVar13 = pbVar26;
            puVar4 = puVar24 + -0x1e0;
            goto LAB_00019590;
          }
        }
        iVar9 = -1;
        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();
        iVar10 = *(int *)(puVar24 + -0x1c8);
        *puVar5 = 0xc;
        goto LAB_00019590;
      }
    }
  }
  pbVar12 = *(byte **)(puVar24 + -0x1b8);
  iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12);
  *(byte **)(puVar24 + -0x1d0) = pbVar20;
  iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),
                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))
  ;
  iVar10 = *(int *)(puVar24 + -0x1c8);
  puVar4 = puVar24 + -0x1e0;
LAB_00019590:
  iVar11 = *(int *)(puVar24 + -0x1a4);
  pcVar27 = *(code **)(iVar10 + -0x7df0);
  if (iVar11 == *piVar6) {
    return iVar9;
  }
  pcVar28 = rpl_freopen;
  (*pcVar27)();
  pcVar22 = *(code **)(pcVar27 + 0x15a74);
  *(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0;
  *(byte **)(puVar4 + -0xc) = pbVar13;
  *(int **)(puVar4 + -0x14) = piVar6;
  *(int *)(puVar4 + -0x18) = iVar9;
  *(code **)(puVar4 + -4) = pcVar28;
  *(char **)(puVar4 + -8) = string;
  *(byte **)(puVar4 + -0x10) = pbVar20;
  iVar9 = (*pcVar22)();
  if ((iVar9 != 0) && (iVar11 != 0)) {
    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);
    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);
    if (iVar7 < 0) {
      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();
      if (*piVar6 == 9) {
        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))
                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);
        iVar23 = *(int *)(puVar4 + -0x20);
        if (iVar10 != iVar7) {
          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);
          if (iVar10 < 0) {
            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);
            return iVar9;
          }
          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();
          iVar23 = *(int *)(puVar4 + -0x20);
        }
                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);
        return iVar9;
      }
    }
  }
  return iVar9;
}



uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  byte bVar7;
  undefined4 *puVar4;
  int *piVar5;
  int iVar6;
  int iVar8;
  int iVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 uVar12;
  undefined1 *puVar13;
  uint unaff_s1;
  byte *pbVar14;
  byte *pbVar15;
  undefined *unaff_s3;
  int unaff_s5;
  undefined1 *puVar16;
  undefined1 *puVar17;
  byte *unaff_s6;
  byte *pbVar18;
  undefined *puVar19;
  code *pcVar20;
  int iVar21;
  undefined1 *puVar22;
  undefined1 *puVar23;
  byte *pbVar24;
  code *pcVar25;
  code *pcVar26;
  undefined1 auStack_68 [24];
  byte *local_44;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar1 = PTR___stack_chk_guard_0002f30c;
  puVar22 = auStack_68;
  pbVar18 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;
  pbVar10 = param_2;
  pbVar11 = param_3;
  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);
  puVar19 = PTR___progname_0002f108;
  iVar8 = (int)(char)param_2[1];
  if (iVar8 != 0) {
    unaff_s5 = 0;
    unaff_s1 = (uint)(param_1 - 0x3fU < 2);
    puVar2 = PTR_DAT_0002f118 + -0x231c;
    local_34 = &local_30;
    puVar17 = auStack_68;
    unaff_s6 = pbVar18;
    do {
      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {
        if (*(int *)(puVar19 + -0xb20) == 0) {
          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);
          uVar12 = 0xffffffff;
          if (iVar8 != 0) {
            uVar12 = 1;
          }
          *(undefined4 *)(puVar19 + -0xb20) = uVar12;
        }
        bVar7 = pbVar18[1];
        pbVar15 = pbVar18 + 1;
        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {
          bVar7 = pbVar18[2];
          pbVar15 = pbVar18 + 2;
        }
        if (bVar7 == 0x5d) {
          bVar7 = pbVar15[1];
          pbVar15 = pbVar15 + 1;
        }
        pbVar10 = (byte *)0x5d;
        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {
          if (bVar7 == 0) goto LAB_000182c4;
          pbVar15 = pbVar18;
          bVar7 = *pbVar18;
        }
        iVar8 = (int)(char)pbVar15[1];
joined_r0x00018418:
        puVar17 = puVar22;
        if (iVar8 == 0) goto LAB_000182c4;
      }
      pbVar10 = &DAT_c0000601;
      uVar3 = iVar8 - 0x21U & 0xff;
      pbVar11 = (byte *)(uint)(uVar3 < 0x20);
      if (pbVar11 != (byte *)0x0) {
        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
          iVar8 = (int)(char)pbVar18[1];
          if (iVar8 != 0x28) goto joined_r0x0001842c;
          pbVar11 = (byte *)0x1;
          unaff_s5 = unaff_s5 + 1;
          pbVar18 = pbVar18 + 1;
          uVar3 = 7;
        }
        if (iVar8 != 0x29) goto LAB_00018428;
        if (unaff_s5 != 0) {
          iVar8 = (int)(char)pbVar18[1];
          unaff_s5 = unaff_s5 + -1;
joined_r0x0001842c:
          pbVar18 = pbVar18 + 1;
          goto joined_r0x00018418;
        }
        if (1 < param_1 - 0x3fU) {
          local_44 = pbVar18 + (1 - (int)unaff_s6);
        }
        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
          puVar17 = (undefined1 *)
                    (*(code *)PTR_mempcpy_0002f2fc)
                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);
          *puVar17 = 0;
          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;
          *local_34 = (int)(puVar22 + iVar8 + 0x18);
          if (local_30 == 0) {
            uVar3 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,
                               PTR_DAT_0002f118 + -0x1fa0);
            return uVar3;
          }
          if (pbVar18[-1] == 0x29) {
            if (param_1 - 0x21U < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00018524 */
                    /* WARNING: Treating indirect jump as call */
              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +
                                                  (param_1 - 0x21U) * 4 + -0x2110)))();
              return uVar3;
            }
            uVar3 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,
                               PTR_DAT_0002f118 + -0x1fa0);
            return uVar3;
          }
          uVar3 = (*(code *)PTR___assert_fail_0002f218)
                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,
                             PTR_DAT_0002f118 + -0x1fa0);
          return uVar3;
        }
        break;
      }
      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {
LAB_00018428:
        iVar8 = (int)(char)pbVar18[1];
        goto joined_r0x0001842c;
      }
      pbVar15 = local_44;
      if (unaff_s1 == 0) {
        pbVar15 = pbVar18 + (1 - (int)unaff_s6);
      }
      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;
      pbVar11 = pbVar18 + -(int)unaff_s6;
      pbVar14 = pbVar18 + 1;
      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
      puVar23 = puVar22 + iVar9;
      piVar5 = (int *)(puVar22 + iVar9 + 0x18);
      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);
      iVar8 = (int)(char)pbVar18[1];
      *puVar17 = 0;
      *piVar5 = 0;
      *local_34 = (int)piVar5;
      pbVar10 = unaff_s6;
      unaff_s6 = pbVar14;
      pbVar18 = pbVar14;
      puVar22 = puVar22 + iVar9;
      local_34 = piVar5;
      puVar17 = puVar23;
    } while (iVar8 != 0);
  }
LAB_000182c4:
  if (local_2c == *(byte **)puVar1) {
    return 0xffffffff;
  }
  pcVar25 = FUN_000188a0;
  pbVar15 = local_2c;
  puVar19 = PTR___stack_chk_fail_0002f2f0;
  (*(code *)PTR___stack_chk_fail_0002f2f0)();
  puVar2 = puVar19 + 0x1e840;
  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);
  *(undefined1 **)(puVar22 + -8) = auStack_68;
  *(undefined **)(puVar22 + -0x1c) = unaff_s3;
  *(undefined **)(puVar22 + -0x160) = puVar2;
  *(code **)(puVar22 + -4) = pcVar25;
  *(byte **)(puVar22 + -0xc) = pbVar18;
  *(byte **)(puVar22 + -0x10) = unaff_s6;
  *(int *)(puVar22 + -0x14) = unaff_s5;
  *(byte **)(puVar22 + -0x18) = param_3;
  *(undefined **)(puVar22 + -0x20) = puVar1;
  *(uint *)(puVar22 + -0x24) = unaff_s1;
  *(byte **)(puVar22 + -0x28) = param_2;
  *(undefined4 **)(puVar22 + -0x144) = puVar4;
  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;
  pbVar14 = (byte *)(uint)*pbVar15;
  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;
  iVar8 = *(int *)(puVar19 + 0x16878);
  pbVar18 = pbVar11;
  pbVar24 = pbVar10;
  if (pbVar14 != (byte *)0x0) {
    uVar3 = *(uint *)(puVar22 + 0x10);
    unaff_s1 = uVar3 & 2;
    param_2 = (byte *)(uVar3 & 0x10);
    *(uint *)(puVar22 + -0x140) = uVar3 & 5;
    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);
    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;
    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;
    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;
    param_3 = pbVar15;
    unaff_s6 = param_4;
    do {
      pbVar15 = pbVar14;
      if (param_2 != (byte *)0x0) {
        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar22 + -0x160);
        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);
      }
      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +
                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();
        return uVar3;
      }
      uVar3 = 1;
      pbVar14 = pbVar15;
      if (pbVar24 == pbVar11) goto LAB_00018b74;
      pbVar14 = (byte *)(uint)*pbVar24;
      if (param_2 != (byte *)0x0) {
        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar22 + -0x160);
        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);
      }
      uVar3 = 1;
      unaff_s6 = pbVar15;
      if (pbVar14 != pbVar15) goto LAB_00018b74;
      param_3 = *(byte **)(puVar22 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar14 = (byte *)(uint)*param_3;
      pbVar24 = pbVar24 + 1;
      *(byte **)(puVar22 + -0x154) = param_3 + 1;
    } while (pbVar14 != (byte *)0x0);
  }
  uVar3 = 0;
  if (pbVar24 != pbVar11) {
    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);
    if (param_3 == (byte *)0x0) {
      uVar3 = 1;
    }
    else {
      uVar3 = (uint)(*pbVar24 != 0x2f);
    }
  }
LAB_00018b74:
  iVar9 = *(int *)(puVar22 + -0x2c);
  if (iVar9 == **(int **)(puVar22 + -0x144)) {
    return uVar3;
  }
  pcVar25 = *(code **)(puVar2 + -0x7df0);
  pcVar26 = gnu_fnmatch;
  (*pcVar25)();
  puVar17 = puVar22 + -0x1e0;
  pcVar20 = *(code **)(pcVar25 + 0x15df8);
  *(uint *)(puVar22 + -0x19c) = unaff_s1;
  piVar5 = *(int **)(pcVar25 + 0x15e28);
  *(byte **)(puVar22 + -0x180) = pbVar24;
  *(byte **)(puVar22 + -0x198) = pbVar14;
  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;
  *(code **)(puVar22 + -0x17c) = pcVar26;
  *(int *)(puVar22 + -0x184) = iVar8;
  *(byte **)(puVar22 + -0x188) = unaff_s6;
  *(int *)(puVar22 + -0x18c) = unaff_s5;
  *(byte **)(puVar22 + -400) = param_3;
  *(byte **)(puVar22 + -0x194) = pbVar11;
  *(byte **)(puVar22 + -0x1a0) = param_2;
  *(int *)(puVar22 + -0x1b4) = iVar9;
  *(byte **)(puVar22 + -0x1b8) = pbVar10;
  *(int *)(puVar22 + -0x1a4) = *piVar5;
  iVar8 = (*pcVar20)();
  iVar9 = *(int *)(puVar22 + -0x1c8);
  if (iVar8 != 1) {
    puVar13 = puVar22 + -0x1ac;
    pcVar25 = *(code **)(iVar9 + -0x7dac);
    puVar16 = puVar22 + -0x1b4;
    *(undefined4 *)(puVar22 + -0x1ac) = 0;
    *(undefined4 *)(puVar22 + -0x1a8) = 0;
    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);
    pbVar11 = (byte *)(iVar8 + 1);
    iVar9 = *(int *)(puVar22 + -0x1c8);
    if (pbVar11 != (byte *)0x0) {
      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);
      uVar12 = 0x129;
      iVar9 = *(int *)(puVar22 + -0x1c8);
      if (iVar8 == 0) goto LAB_00019800;
      pbVar15 = puVar22 + -0x1b8;
      pbVar10 = pbVar15;
      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);
      pbVar14 = param_3 + 1;
      iVar9 = *(int *)(puVar22 + -0x1c8);
      if (pbVar14 != (byte *)0x0) {
        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);
        iVar9 = *(int *)(puVar22 + -0x1c8);
        if (iVar8 == 0) {
          uVar12 = 0x12d;
          goto LAB_00019800;
        }
        pbVar24 = pbVar11 + (int)pbVar14;
        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {
          if (pbVar24 < (byte *)0x7d0) {
            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);
            puVar17 = puVar22 + iVar6 + -0x1c8;
            pbVar24 = puVar17 + (int)pbVar11 * 4;
            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);
            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);
            iVar9 = *(int *)(puVar22 + -0x1c8);
            if (iVar8 == 0) {
LAB_00019820:
              do {
                uVar12 = 0x147;
LAB_00019800:
                (**(code **)(iVar9 + -0x7ec8))
                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,
                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);
              } while( true );
            }
            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);
            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;
            pbVar10 = pbVar24;
            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,
                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);
            iVar8 = *(int *)(puVar22 + -0x1c8);
            pbVar11 = pbVar24;
            puVar17 = puVar22 + iVar6 + -0x1e0;
            goto LAB_00019590;
          }
          iVar8 = (**(code **)(iVar9 + -0x7e28))();
          iVar9 = *(int *)(puVar22 + -0x1c8);
          if (iVar8 != 0) {
            pcVar25 = *(code **)(iVar9 + -0x7dac);
            *(int *)(puVar22 + -0x1bc) = iVar8;
            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);
            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);
            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);
            iVar9 = *(int *)(puVar22 + -0x1c8);
            if (iVar8 == 0) goto LAB_00019820;
            pcVar25 = *(code **)(iVar9 + -0x7dac);
            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);
            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);
            *(byte **)(puVar22 + -0x1d0) = pbVar18;
            pbVar10 = pbVar24;
            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,
                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);
            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));
            iVar8 = *(int *)(puVar22 + -0x1c8);
            pbVar11 = pbVar24;
            puVar17 = puVar22 + -0x1e0;
            goto LAB_00019590;
          }
        }
        uVar3 = 0xffffffff;
        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();
        iVar8 = *(int *)(puVar22 + -0x1c8);
        *puVar4 = 0xc;
        goto LAB_00019590;
      }
    }
  }
  pbVar10 = *(byte **)(puVar22 + -0x1b8);
  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);
  *(byte **)(puVar22 + -0x1d0) = pbVar18;
  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,
                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);
  iVar8 = *(int *)(puVar22 + -0x1c8);
  puVar17 = puVar22 + -0x1e0;
LAB_00019590:
  iVar9 = *(int *)(puVar22 + -0x1a4);
  pcVar25 = *(code **)(iVar8 + -0x7df0);
  if (iVar9 == *piVar5) {
    return uVar3;
  }
  pcVar26 = rpl_freopen;
  (*pcVar25)();
  pcVar20 = *(code **)(pcVar25 + 0x15a74);
  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;
  *(byte **)(puVar17 + -0xc) = pbVar11;
  *(int **)(puVar17 + -0x14) = piVar5;
  *(uint *)(puVar17 + -0x18) = uVar3;
  *(code **)(puVar17 + -4) = pcVar26;
  *(byte **)(puVar17 + -8) = param_3;
  *(byte **)(puVar17 + -0x10) = pbVar18;
  uVar3 = (*pcVar20)();
  if ((uVar3 != 0) && (iVar9 != 0)) {
    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);
    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);
    if (iVar6 < 0) {
      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();
      if (*piVar5 == 9) {
        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))
                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);
        iVar21 = *(int *)(puVar17 + -0x20);
        if (iVar8 != iVar6) {
          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);
          if (iVar8 < 0) {
            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);
            return uVar3;
          }
          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();
          iVar21 = *(int *)(puVar17 + -0x20);
        }
                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);
        return uVar3;
      }
    }
  }
  return uVar3;
}


lui gp,0x2
addiu gp,gp,-0x10d0
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7e44(gp)
sw s8,0x60(sp)
or s8,sp,zero
sw s2,0x48(sp)
lw s2,-0x7dd4(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,0x000182c0
_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,-0x231c
sw v0,0x28(s8)
li v0,0x5b
beq a0,v0,0x000183c4
_lui v0,0xc000
addiu a1,v0,0x601
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
beq a2,zero,0x00018328
_li t2,0x28
srlv v0,a1,v0
ext v0,v0,0x0,0x1
bne v0,zero,0x00018308
_li v0,0x29
bne a0,v0,0x00018428
_nop
beq s5,zero,0x00018480
_addiu v0,s5,-0x1
lb a0,0x1(s7)
addiu s7,s7,0x1
or s5,v0,zero
bne a0,zero,0x0001826c
_li v0,0x5b
li v0,-0x1
lw a0,0x3c(s8)
lw v1,0x0(s2)
bne a0,v1,0x00018898
_lw t9,-0x7df0(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,0x000182b8
_addiu s7,s7,0x1
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
bne a2,zero,0x0001828c
_addiu s5,s5,0x1
li v0,0x7c
bne a0,v0,0x00018428
_nop
bne s5,zero,0x00018428
_nop
bne s1,zero,0x0001834c
_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,0x000182c0
_addiu v0,v0,0x7
lw t9,-0x7de4(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,0x00018268
_sw t2,0x0(v0)
b 0x000182c4
_li v0,-0x1
lw v0,-0xb20(s3)
beq v0,zero,0x00018460
_lw t9,-0x7e20(gp)
lb v0,0x1(s7)
li a1,0x21
beq v0,a1,0x00018444
_addiu a0,s7,0x1
lw a1,-0xb20(s3)
bltz a1,0x0001843c
_li a1,0x5e
li v1,0x5d
beq v0,v1,0x00018454
_nop
b 0x0001840c
_li a1,0x5d
beq v0,zero,0x000182c0
_or a0,s7,zero
lb v0,0x0(s7)
bne v0,a1,0x00018400
_addiu s7,a0,0x1
lb a0,0x1(a0)
bne a0,zero,0x00018268
_li v0,-0x1
b 0x000182c4
_nop
lb a0,0x1(s7)
bne a0,zero,0x00018268
_addiu s7,s7,0x1
b 0x000182c4
_li v0,-0x1
bne v0,a1,0x000183f0
_li v1,0x5d
lb v0,0x2(s7)
li v1,0x5d
bne v0,v1,0x000183f8
_addiu a0,s7,0x2
lb v0,0x1(a0)
b 0x000183f8
_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 0x000183d0
_sw a1,-0xb20(s3)
lw v0,0x68(s8)
addiu v0,v0,-0x3f
sltiu v0,v0,0x2
bne v0,zero,0x0001849c
_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,0x000182c0
_addiu v0,v0,0x7
lw t9,-0x7de4(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,0x00018874
_li v0,0x29
lb a0,-0x1(s7)
bne a0,v0,0x00018850
_lw v0,0x68(s8)
addiu s3,v0,-0x21
sltiu v0,s3,0x20
beq v0,zero,0x0001882c
_lw v0,-0x7fc8(gp)
sll s3,s3,0x2
addiu v0,v0,-0x2110
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,-0x7760
or t9,s3,zero
bal 0x000188a0
_sw v0,0x10(sp)
beq v0,zero,0x00018690
_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,-0x7760
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,0x00018810
_addiu s0,s1,0x4
b 0x00018640
_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 0x000188a0
_or a3,v0,zero
beq v0,zero,0x00018690
_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 0x000188a0
_or a3,v0,zero
beq v0,zero,0x00018690
_lw gp,0x18(s8)
lw v0,0x2c(s8)
addiu s5,s5,0x1
sltu v0,v0,s5
bne v0,zero,0x00018810
_nop
lw a3,0x30(s8)
or a2,s5,zero
sw s6,0x10(sp)
or a1,s4,zero
or t9,s3,zero
bal 0x000188a0
_or a0,s0,zero
bne v0,zero,0x0001862c
_lw gp,0x18(s8)
bne s4,s5,0x000185c8
_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 0x000188a0
_sw s6,0x10(sp)
bne v0,zero,0x0001862c
_lw gp,0x18(s8)
b 0x000182c4
_or v0,zero,zero
lw v0,0x2c(s8)
sltu v0,v0,s4
bne v0,zero,0x00018760
_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,-0x7760
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 0x000188a0
_or a1,s4,zero
beq v0,zero,0x0001874c
_lw gp,0x18(s8)
lw s5,0x0(s5)
bne s5,zero,0x000186e8
_lw a3,0x30(s8)
beq s4,s0,0x00018824
_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 0x000188a0
_or a0,s7,zero
beq v0,zero,0x00018690
_lw gp,0x18(s8)
lw v0,0x2c(s8)
addiu s0,s0,0x1
sltu v0,v0,s0
beq v0,zero,0x000186e0
_nop
b 0x000182c4
_li v0,0x1
lw s3,-0x7fc8(gp)
addiu s3,s3,-0x7760
lw v0,0x7c(s8)
lw v1,0x7c(s8)
andi s0,v0,0x1
li v0,-0x5
and v0,v1,v0
movz v1,v0,s0
b 0x0001879c
_or s0,v1,zero
lw s1,0x0(s1)
beq s1,zero,0x00018760
_sw s1,0x38(s8)
lw t9,-0x7e0c(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 0x000188a0
_sw s0,0x10(sp)
bne v0,zero,0x00018790
_lw gp,0x18(s8)
b 0x000182c4
_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,-0x7760
or t9,s3,zero
bal 0x000188a0
_sw v0,0x10(sp)
bne v0,zero,0x00018770
_lw gp,0x18(s8)
b 0x000182c4
_or v0,zero,zero
lw s1,0x0(s1)
bne s1,zero,0x000185b4
_sw s1,0x38(s8)
b 0x000182c4
_li v0,0x1
b 0x0001872c
_lw a3,0x30(s8)
lw a3,-0x7fc8(gp)
li a2,0x4ad
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7ec8(gp)
addiu a3,a3,-0x1fa0
addiu a1,a1,-0x230c
jalr t9
_addiu a0,a0,-0x22d4
lw a3,-0x7fc8(gp)
li a2,0x455
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7ec8(gp)
addiu a3,a3,-0x1fa0
addiu a1,a1,-0x230c
jalr t9
_addiu a0,a0,-0x22e8
lw a3,-0x7fc8(gp)
li a2,0x454
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7ec8(gp)
addiu a3,a3,-0x1fa0
addiu a1,a1,-0x230c
jalr t9
_addiu a0,a0,-0x22f8
jalr t9
_nop
(translation_unit "uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}\n\n" (function_definition "uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_000181b0(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  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * 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 "puVar1 = PTR___stack_chk_guard_0002f30c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0002f30c" identifier = identifier) ;) (expression_statement "puVar22 = auStack_68;" (assignment_expression "puVar22 = auStack_68" identifier = identifier) ;) (expression_statement "pbVar18 = param_2 + 1;" (assignment_expression "pbVar18 = 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_0002f30c;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_0002f30c" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_0002f30c" * (cast_expression "(byte **)PTR___stack_chk_guard_0002f30c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = param_3;" (assignment_expression "pbVar11 = param_3" identifier = identifier) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0002f29c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0002f29c)" ( (pointer_expression "*(code *)PTR_strlen_0002f29c" * (cast_expression "(code *)PTR_strlen_0002f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar19 = PTR___progname_0002f108;" (assignment_expression "puVar19 = PTR___progname_0002f108" identifier = identifier) ;) (expression_statement "iVar8 = (int)(char)param_2[1];" (assignment_expression "iVar8 = (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 (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = 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 "puVar2 = PTR_DAT_0002f118 + -0x231c;" (assignment_expression "puVar2 = PTR_DAT_0002f118 + -0x231c" identifier = (binary_expression "PTR_DAT_0002f118 + -0x231c" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "puVar17 = auStack_68;" (assignment_expression "puVar17 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" identifier = identifier) ;) (do_statement "do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);" do (compound_statement "{\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    }" { (while_statement "while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" while (parenthesized_expression "(puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b)" ( (comma_expression "puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "puVar22 = puVar17" identifier = identifier) , (comma_expression "unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "unaff_s3 = puVar19" identifier = identifier) , (binary_expression "iVar8 == 0x5b" identifier == number_literal))) )) (compound_statement "{\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" { (if_statement "if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" if (parenthesized_expression "(*(int *)(puVar19 + -0xb20) == 0)" ( (binary_expression "*(int *)(puVar19 + -0xb20) == 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" * (cast_expression "(int *)(puVar19 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" { (expression_statement "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);" (assignment_expression "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0002f2c0)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0002f2c0)" ( (pointer_expression "*(code *)PTR_getenv_0002f2c0" * (cast_expression "(code *)PTR_getenv_0002f2c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            uVar12 = 1;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar12 = 1;\n          }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar19 + -0xb20) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0xb20) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0xb20)" * (cast_expression "(undefined4 *)(puVar19 + -0xb20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "bVar7 = pbVar18[1];" (assignment_expression "bVar7 = pbVar18[1]" identifier = (subscript_expression "pbVar18[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar18 + 1;" (assignment_expression "pbVar15 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" if (parenthesized_expression "((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))))" ( (binary_expression "(bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" (parenthesized_expression "(bVar7 == 0x21)" ( (binary_expression "bVar7 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))" ( (binary_expression "*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)" (binary_expression "*(int *)(puVar19 + -0xb20) < 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" * (cast_expression "(int *)(puVar19 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar7 == 0x5e)" ( (binary_expression "bVar7 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" { (expression_statement "bVar7 = pbVar18[2];" (assignment_expression "bVar7 = pbVar18[2]" identifier = (subscript_expression "pbVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar18 + 2;" (assignment_expression "pbVar15 = pbVar18 + 2" identifier = (binary_expression "pbVar18 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" if (parenthesized_expression "(bVar7 == 0x5d)" ( (binary_expression "bVar7 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" { (expression_statement "bVar7 = pbVar15[1];" (assignment_expression "bVar7 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10 = (byte *)0x5d;" (assignment_expression "pbVar10 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" while (parenthesized_expression "(pbVar18 = pbVar15 + 1, bVar7 != 0x5d)" ( (comma_expression "pbVar18 = pbVar15 + 1, bVar7 != 0x5d" (assignment_expression "pbVar18 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) , (binary_expression "bVar7 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" { (if_statement "if (bVar7 == 0) goto LAB_000182c4;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" goto statement_identifier ;)) (expression_statement "pbVar15 = pbVar18;" (assignment_expression "pbVar15 = pbVar18" identifier = identifier) ;) (expression_statement "bVar7 = *pbVar18;" (assignment_expression "bVar7 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) })) (expression_statement "iVar8 = (int)(char)pbVar15[1];" (assignment_expression "iVar8 = (int)(char)pbVar15[1]" identifier = (cast_expression "(int)(char)pbVar15[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar15[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar15[1]" identifier [ number_literal ])))) ;) (labeled_statement "joined_r0x00018418:\n        puVar17 = puVar22;" statement_identifier : (expression_statement "puVar17 = puVar22;" (assignment_expression "puVar17 = puVar22" identifier = identifier) ;)) (if_statement "if (iVar8 == 0) goto LAB_000182c4;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" goto statement_identifier ;)) })) (expression_statement "pbVar10 = &DAT_c0000601;" (assignment_expression "pbVar10 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar8 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar8 - 0x21U & 0xff" identifier = (binary_expression "iVar8 - 0x21U & 0xff" (binary_expression "iVar8 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar11 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar11 = (byte *)(uint)(uVar3 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar3 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar3 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < 0x20)" ( (binary_expression "uVar3 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" if (parenthesized_expression "(pbVar11 != (byte *)0x0)" ( (binary_expression "pbVar11 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar3 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar3 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar3 & 0x1f)" number_literal >> (parenthesized_expression "(uVar3 & 0x1f)" ( (binary_expression "uVar3 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" { (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (if_statement "if (iVar8 != 0x28) goto joined_r0x0001842c;" if (parenthesized_expression "(iVar8 != 0x28)" ( (binary_expression "iVar8 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0001842c;" goto statement_identifier ;)) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar8 != 0x29) goto LAB_00018428;" if (parenthesized_expression "(iVar8 != 0x29)" ( (binary_expression "iVar8 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00018428;" goto statement_identifier ;)) (if_statement "if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" if (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" { (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (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_r0x0001842c:\n          pbVar18 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00018418;" goto statement_identifier ;) })) (if_statement "if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (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 = pbVar18 + (1 - (int)unaff_s6);\n        }" { (expression_statement "local_44 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar18 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar18 + (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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }" { (expression_statement "iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(((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 "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" ( (binary_expression "puVar22 + iVar8 + 0x1c" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar18 - (int)unaff_s6" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18)" * (cast_expression "(undefined4 *)(puVar22 + iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar8 + 0x18)" ( (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(puVar22 + iVar8 + 0x18);" (assignment_expression "*local_34 = (int)(puVar22 + iVar8 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(puVar22 + iVar8 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + iVar8 + 0x18)" ( (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22f8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" if (parenthesized_expression "(pbVar18[-1] == 0x29)" ( (binary_expression "pbVar18[-1] == 0x29" (subscript_expression "pbVar18[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" { (if_statement "if (param_1 - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" if (parenthesized_expression "(param_1 - 0x21U < 0x20)" ( (binary_expression "param_1 - 0x21U < 0x20" (binary_expression "param_1 - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" { comment comment (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" * (cast_expression "(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" ( (binary_expression "PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110" (binary_expression "PTR_DAT_0002f118 +\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 uVar3;" return identifier ;) })) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22d4" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22e8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (break_statement "break;" break ;) })) (if_statement "if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" if (parenthesized_expression "((iVar8 != 0x7c) || (unaff_s5 != 0))" ( (binary_expression "(iVar8 != 0x7c) || (unaff_s5 != 0)" (parenthesized_expression "(iVar8 != 0x7c)" ( (binary_expression "iVar8 != 0x7c" identifier != number_literal) )) || (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" { (labeled_statement "LAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];" statement_identifier : (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;)) (goto_statement "goto joined_r0x0001842c;" goto statement_identifier ;) })) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }" { (expression_statement "pbVar15 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "pbVar15 = pbVar18 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar18 + (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)(pbVar15 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + 7)" ( (binary_expression "pbVar15 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = pbVar18 + -(int)unaff_s6;" (assignment_expression "pbVar11 = pbVar18 + -(int)unaff_s6" identifier = (binary_expression "pbVar18 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar14 = pbVar18 + 1;" (assignment_expression "pbVar14 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + 7)" ( (binary_expression "pbVar15 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar23 = puVar22 + iVar9;" (assignment_expression "puVar23 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "piVar5 = (int *)(puVar22 + iVar9 + 0x18);" (assignment_expression "piVar5 = (int *)(puVar22 + iVar9 + 0x18)" identifier = (cast_expression "(int *)(puVar22 + iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar9 + 0x18)" ( (binary_expression "puVar22 + iVar9 + 0x18" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar9 + 0x1c)" ( (binary_expression "puVar22 + iVar9 + 0x1c" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar5;" (assignment_expression "*local_34 = (int)piVar5" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar14;" (assignment_expression "unaff_s6 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "local_34 = piVar5;" (assignment_expression "local_34 = piVar5" identifier = identifier) ;) (expression_statement "puVar17 = puVar23;" (assignment_expression "puVar17 = puVar23" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar1)" ( (binary_expression "local_2c == *(byte **)puVar1" identifier == (pointer_expression "*(byte **)puVar1" * (cast_expression "(byte **)puVar1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) }))) (expression_statement "pcVar25 = FUN_000188a0;" (assignment_expression "pcVar25 = FUN_000188a0" identifier = identifier) ;) (expression_statement "pbVar15 = local_2c;" (assignment_expression "pbVar15 = local_2c" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_0002f2f0;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0002f2f0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002f2f0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002f2f0" * (cast_expression "(code *)PTR___stack_chk_fail_0002f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar19 + 0x1e840;" (assignment_expression "puVar2 = puVar19 + 0x1e840" identifier = (binary_expression "puVar19 + 0x1e840" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);" (assignment_expression "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c)" identifier = (pointer_expression "*(undefined4 **)(puVar19 + 0x16a6c)" * (cast_expression "(undefined4 **)(puVar19 + 0x16a6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x16a6c)" ( (binary_expression "puVar19 + 0x16a6c" 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) = puVar2;" (assignment_expression "*(undefined **)(puVar22 + -0x160) = puVar2" (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) = pcVar25;" (assignment_expression "*(code **)(puVar22 + -4) = pcVar25" (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) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0xc) = pbVar18" (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 "*(int *)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x14)" * (cast_expression "(int *)(puVar22 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x14)" ( (binary_expression "puVar22 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar22 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar22 + -0x18)" * (cast_expression "(byte **)(puVar22 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x18)" ( (binary_expression "puVar22 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x20) = puVar1;" (assignment_expression "*(undefined **)(puVar22 + -0x20) = puVar1" (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 "*(byte **)(puVar22 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x28)" * (cast_expression "(byte **)(puVar22 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x28)" ( (binary_expression "puVar22 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar22 + -0x144) = puVar4;" (assignment_expression "*(undefined4 **)(puVar22 + -0x144) = puVar4" (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) = pbVar15 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = pbVar15 + 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 "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)*pbVar15;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar15" identifier = (binary_expression "(byte *)(uint)*pbVar15" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = *puVar4" (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 "*puVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(puVar19 + 0x16878);" (assignment_expression "iVar8 = *(int *)(puVar19 + 0x16878)" identifier = (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = pbVar11;" (assignment_expression "pbVar18 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar10;" (assignment_expression "pbVar24 = pbVar10" identifier = identifier) ;) (if_statement "if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\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    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }" { (expression_statement "uVar3 = *(uint *)(puVar22 + 0x10);" (assignment_expression "uVar3 = *(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 = uVar3 & 2;" (assignment_expression "unaff_s1 = uVar3 & 2" identifier = (binary_expression "uVar3 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar3 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar3 & 0x10)" identifier = (cast_expression "(byte *)(uVar3 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar22 + -0x140) = uVar3 & 5;" (assignment_expression "*(uint *)(puVar22 + -0x140) = uVar3 & 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 "uVar3 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);" (assignment_expression "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868)" (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 *)(puVar19 + 0x16868)" * (cast_expression "(undefined4 *)(puVar19 + 0x16868)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16868)" ( (binary_expression "puVar19 + 0x16868" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;" (assignment_expression "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090" (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 "iVar8 + -0x2090" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;" (assignment_expression "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50" (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 *)(puVar19 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;" (assignment_expression "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c" (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 *)(puVar19 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_3 = pbVar15;" (assignment_expression "param_3 = pbVar15" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);" do (compound_statement "{\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    }" { (expression_statement "pbVar15 = pbVar14;" (assignment_expression "pbVar15 = pbVar14" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(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 "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);" (assignment_expression "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4 + 3)" ( (binary_expression "*piVar5 + (int)pbVar14 * 4 + 3" (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" if (parenthesized_expression "(((uint)(pbVar15 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar15 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + -0x21)" ( (binary_expression "pbVar15 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" { comment comment (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -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)(pbVar15 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + -0x21)" ( (binary_expression "pbVar15 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar15;" (assignment_expression "pbVar14 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar11) goto LAB_00018b74;" if (parenthesized_expression "(pbVar24 == pbVar11)" ( (binary_expression "pbVar24 == pbVar11" identifier == identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)(uint)*pbVar24;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar24" identifier = (binary_expression "(byte *)(uint)*pbVar24" (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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(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 "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);" (assignment_expression "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4)" identifier = (pointer_expression "*(byte **)(*piVar5 + (int)pbVar14 * 4)" * (cast_expression "(byte **)(*piVar5 + (int)pbVar14 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4)" ( (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar14 != pbVar15) goto LAB_00018b74;" if (parenthesized_expression "(pbVar14 != pbVar15)" ( (binary_expression "pbVar14 != pbVar15" identifier != identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "param_3 = *(byte **)(puVar22 + -0x154);" (assignment_expression "param_3 = *(byte **)(puVar22 + -0x154)" identifier = (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) ))))) ;) (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 "pbVar14 = (byte *)(uint)*param_3;" (assignment_expression "pbVar14 = (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 "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar22 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = param_3 + 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 "param_3 + 1" identifier + number_literal)) ;) }) while (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)) )) ;) })) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar24 != pbVar11)" ( (binary_expression "pbVar24 != pbVar11" identifier != identifier) )) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" { (expression_statement "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);" (assignment_expression "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8)" identifier = (cast_expression "(byte *)(*(uint *)(puVar22 + 0x10) & 8)" ( (type_descriptor "byte *" type_identifier (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 (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 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      uVar3 = 1;\n    }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" else (compound_statement "{\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" { (expression_statement "uVar3 = (uint)(*pbVar24 != 0x2f);" (assignment_expression "uVar3 = (uint)(*pbVar24 != 0x2f)" identifier = (call_expression "(uint)(*pbVar24 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar24 != 0x2f)" ( (binary_expression "*pbVar24 != 0x2f" (pointer_expression "*pbVar24" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar22 + -0x2c);" (assignment_expression "iVar9 = *(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 (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar9 == **(int **)(puVar22 + -0x144))" ( (binary_expression "iVar9 == **(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 uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puVar2 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(puVar2 + -0x7df0)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7df0)" * (cast_expression "(code **)(puVar2 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7df0)" ( (binary_expression "puVar2 + -0x7df0" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = gnu_fnmatch;" (assignment_expression "pcVar26 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15df8);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15df8)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x15df8)" * (cast_expression "(code **)(pcVar25 + 0x15df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15df8)" ( (binary_expression "pcVar25 + 0x15df8" 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 "piVar5 = *(int **)(pcVar25 + 0x15e28);" (assignment_expression "piVar5 = *(int **)(pcVar25 + 0x15e28)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x15e28)" * (cast_expression "(int **)(pcVar25 + 0x15e28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15e28)" ( (binary_expression "pcVar25 + 0x15e28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar22 + -0x180) = pbVar24;" (assignment_expression "*(byte **)(puVar22 + -0x180) = pbVar24" (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) = pbVar14;" (assignment_expression "*(byte **)(puVar22 + -0x198) = pbVar14" (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) = pcVar25 + 0x1dbfc;" (assignment_expression "*(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc" (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 "pcVar25 + 0x1dbfc" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar22 + -0x17c) = pcVar26;" (assignment_expression "*(code **)(puVar22 + -0x17c) = pcVar26" (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 "*(int *)(puVar22 + -0x184) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x184) = iVar8" (pointer_expression "*(int *)(puVar22 + -0x184)" * (cast_expression "(int *)(puVar22 + -0x184)" ( (type_descriptor "int *" primitive_type (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 "*(int *)(puVar22 + -0x18c) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x18c) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x18c)" * (cast_expression "(int *)(puVar22 + -0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x18c)" ( (binary_expression "puVar22 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -400) = param_3;" (assignment_expression "*(byte **)(puVar22 + -400) = param_3" (pointer_expression "*(byte **)(puVar22 + -400)" * (cast_expression "(byte **)(puVar22 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -400)" ( (binary_expression "puVar22 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x194) = pbVar11;" (assignment_expression "*(byte **)(puVar22 + -0x194) = pbVar11" (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 "*(byte **)(puVar22 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x1a0)" * (cast_expression "(byte **)(puVar22 + -0x1a0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1a0)" ( (binary_expression "puVar22 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1b4) = iVar9;" (assignment_expression "*(int *)(puVar22 + -0x1b4) = iVar9" (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) = pbVar10;" (assignment_expression "*(byte **)(puVar22 + -0x1b8) = pbVar10" (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) = *piVar5;" (assignment_expression "*(int *)(puVar22 + -0x1a4) = *piVar5" (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 "*piVar5" * identifier)) ;) (expression_statement "iVar8 = (*pcVar20)();" (assignment_expression "iVar8 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" { (expression_statement "puVar13 = puVar22 + -0x1ac;" (assignment_expression "puVar13 = puVar22 + -0x1ac" identifier = (binary_expression "puVar22 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar22 + -0x1b4;" (assignment_expression "puVar16 = puVar22 + -0x1b4" identifier = (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 "iVar8 = (*pcVar25)(0,puVar16,0,puVar13);" (assignment_expression "iVar8 = (*pcVar25)(0,puVar16,0,puVar13)" identifier = (call_expression "(*pcVar25)(0,puVar16,0,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(0,puVar16,0,puVar13)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar11 = (byte *)(iVar8 + 1);" (assignment_expression "pbVar11 = (byte *)(iVar8 + 1)" identifier = (cast_expression "(byte *)(iVar8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" if (parenthesized_expression "(pbVar11 != (byte *)0x0)" ( (binary_expression "pbVar11 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" { (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar9 + -0x7dd8)" * (pointer_expression "*(code **)(iVar9 + -0x7dd8)" * (cast_expression "(code **)(iVar9 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dd8)" ( (binary_expression "iVar9 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "uVar12 = 0x129;" (assignment_expression "uVar12 = 0x129" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) goto LAB_00019800;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019800;" goto statement_identifier ;)) (expression_statement "pbVar15 = puVar22 + -0x1b8;" (assignment_expression "pbVar15 = puVar22 + -0x1b8" identifier = (binary_expression "puVar22 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;) (expression_statement "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" identifier = (cast_expression "(byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(0,pbVar15,0,puVar13)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar14 = param_3 + 1;" (assignment_expression "pbVar14 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\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        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }" { (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar9 + -0x7dd8)" * (pointer_expression "*(code **)(iVar9 + -0x7dd8)" * (cast_expression "(code **)(iVar9 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dd8)" ( (binary_expression "iVar9 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" { (expression_statement "uVar12 = 0x12d;" (assignment_expression "uVar12 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_00019800;" goto statement_identifier ;) })) (expression_statement "pbVar24 = pbVar11 + (int)pbVar14;" (assignment_expression "pbVar24 = pbVar11 + (int)pbVar14" identifier = (binary_expression "pbVar11 + (int)pbVar14" identifier + (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" if (parenthesized_expression "((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000))" ( (binary_expression "(pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)" (parenthesized_expression "(pbVar11 <= pbVar24)" ( (binary_expression "pbVar11 <= pbVar24" identifier <= identifier) )) && (parenthesized_expression "(pbVar24 < (byte *)0x40000000)" ( (binary_expression "pbVar24 < (byte *)0x40000000" identifier < (cast_expression "(byte *)0x40000000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" { (if_statement "if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(pbVar24 < (byte *)0x7d0)" ( (binary_expression "pbVar24 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar24 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar24 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar24 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar24 * 4 + 7U" (binary_expression "(int)pbVar24 * 4" (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1c8;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1c8" identifier = (binary_expression "puVar22 + iVar6 + -0x1c8" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar24 = puVar17 + (int)pbVar11 * 4;" (assignment_expression "pbVar24 = puVar17 + (int)pbVar11 * 4" identifier = (binary_expression "puVar17 + (int)pbVar11 * 4" identifier + (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar16,pbVar11,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (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 "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" { (labeled_statement "LAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" do (compound_statement "{\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              }" { (expression_statement "uVar12 = 0x147;" (assignment_expression "uVar12 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" statement_identifier : (expression_statement "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" (call_expression "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" (parenthesized_expression "(**(code **)(iVar9 + -0x7ec8))" ( (pointer_expression "**(code **)(iVar9 + -0x7ec8)" * (pointer_expression "*(code **)(iVar9 + -0x7ec8)" * (cast_expression "(code **)(iVar9 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7ec8)" ( (binary_expression "iVar9 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" ( (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x229c" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x22ac" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x1f88" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18" (pointer_expression "*(byte **)(puVar22 + iVar6 + -0x1d0)" * (cast_expression "(byte **)(puVar22 + iVar6 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + iVar6 + -0x1d0)" ( (binary_expression "puVar22 + iVar6 + -0x1d0" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" identifier = identifier) ;) (expression_statement "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar24 + (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1e0" identifier = (binary_expression "puVar22 + iVar6 + -0x1e0" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7e28))();" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e28))()" identifier = (call_expression "(**(code **)(iVar9 + -0x7e28))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e28))" ( (pointer_expression "**(code **)(iVar9 + -0x7e28)" * (pointer_expression "*(code **)(iVar9 + -0x7e28)" * (cast_expression "(code **)(iVar9 + -0x7e28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e28)" ( (binary_expression "iVar9 + -0x7e28" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x1bc) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x1bc) = iVar8" (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 "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);" (assignment_expression "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4)" identifier = (cast_expression "(byte *)(iVar8 + (int)pbVar11 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + (int)pbVar11 * 4)" ( (binary_expression "iVar8 + (int)pbVar11 * 4" identifier + (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13);" (call_expression "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(iVar8,puVar16,pbVar11,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (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 "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) goto LAB_00019820;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019820;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" 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 "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (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 "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" identifier = identifier) ;) (expression_statement "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( (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) )))) , identifier , (binary_expression "pbVar24 + (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dc8" (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 "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar9 + -0x7e60))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar9 + -0x7e60))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e60))" ( (pointer_expression "**(code **)(iVar9 + -0x7e60)" * (pointer_expression "*(code **)(iVar9 + -0x7e60)" * (cast_expression "(code **)(iVar9 + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e60)" ( (binary_expression "iVar9 + -0x7e60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) })) (expression_statement "pbVar10 = *(byte **)(puVar22 + -0x1b8);" (assignment_expression "pbVar10 = *(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 "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10)" identifier = (call_expression "(**(code **)(iVar9 + -0x7e44))(pbVar10)" (parenthesized_expression "(**(code **)(iVar9 + -0x7e44))" ( (pointer_expression "**(code **)(iVar9 + -0x7e44)" * (pointer_expression "*(code **)(iVar9 + -0x7e44)" * (cast_expression "(code **)(iVar9 + -0x7e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e44)" ( (binary_expression "iVar9 + -0x7e44" identifier + number_literal) ))))) )) (argument_list "(pbVar10)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (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 "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x1b4)" * (cast_expression "(undefined4 *)(puVar22 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1b4)" ( (binary_expression "puVar22 + -0x1b4" identifier + number_literal) )))) , identifier , (binary_expression "pbVar10 + iVar8" identifier + identifier) , (binary_expression "(uint)((int)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (labeled_statement "LAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar22 + -0x1a4);" (assignment_expression "iVar9 = *(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 "pcVar25 = *(code **)(iVar8 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(iVar8 + -0x7df0)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7df0)" * (cast_expression "(code **)(iVar8 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7df0)" ( (binary_expression "iVar8 + -0x7df0" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == *piVar5) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar9 == *piVar5)" ( (binary_expression "iVar9 == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar26 = rpl_freopen;" (assignment_expression "pcVar26 = rpl_freopen" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15a74);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15a74)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x15a74)" * (cast_expression "(code **)(pcVar25 + 0x15a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15a74)" ( (binary_expression "pcVar25 + 0x15a74" identifier + number_literal) ))))) ;) (expression_statement "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;" (assignment_expression "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0" (pointer_expression "*(code **)(puVar17 + -0x20)" * (cast_expression "(code **)(puVar17 + -0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = (binary_expression "pcVar25 + 0x1d8b0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar11;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar11" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar17 + -0x14) = piVar5;" (assignment_expression "*(int **)(puVar17 + -0x14) = piVar5" (pointer_expression "*(int **)(puVar17 + -0x14)" * (cast_expression "(int **)(puVar17 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x18) = uVar3;" (assignment_expression "*(uint *)(puVar17 + -0x18) = uVar3" (pointer_expression "*(uint *)(puVar17 + -0x18)" * (cast_expression "(uint *)(puVar17 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -4) = pcVar26;" (assignment_expression "*(code **)(puVar17 + -4) = pcVar26" (pointer_expression "*(code **)(puVar17 + -4)" * (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar17 + -8) = param_3;" (assignment_expression "*(byte **)(puVar17 + -8) = param_3" (pointer_expression "*(byte **)(puVar17 + -8)" * (cast_expression "(byte **)(puVar17 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar18;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar18" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = (*pcVar20)();" (assignment_expression "uVar3 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" if (parenthesized_expression "((uVar3 != 0) && (iVar9 != 0))" ( (binary_expression "(uVar3 != 0) && (iVar9 != 0)" (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" { (expression_statement "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e68)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e68" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7da8)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7da8" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar8,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();" (assignment_expression "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e60)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e60" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" { (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e4c)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e4c" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" ( (binary_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24" (pointer_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" * (cast_expression "(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7fc8)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7fc8" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" identifier = (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" if (parenthesized_expression "(iVar8 != iVar6)" ( (binary_expression "iVar8 != iVar6" identifier != identifier) )) (compound_statement "{\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" { (expression_statement "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);" (assignment_expression "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" identifier = (call_expression "(**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" (parenthesized_expression "(**(code **)(iVar21 + -0x7da8))" ( (pointer_expression "**(code **)(iVar21 + -0x7da8)" * (pointer_expression "*(code **)(iVar21 + -0x7da8)" * (cast_expression "(code **)(iVar21 + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7da8)" ( (binary_expression "iVar21 + -0x7da8" identifier + number_literal) ))))) )) (argument_list "(iVar6,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" { (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier ))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" identifier = (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) ))))) ;) })) comment comment (expression_statement "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);" (assignment_expression "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" identifier = (call_expression "(**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e3c))" ( (pointer_expression "**(code **)(iVar21 + -0x7e3c)" * (pointer_expression "*(code **)(iVar21 + -0x7e3c)" * (cast_expression "(code **)(iVar21 + -0x7e3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7e3c)" ( (binary_expression "iVar21 + -0x7e3c" identifier + number_literal) ))))) )) (argument_list "(iVar9,pbVar10,uVar3)" ( identifier , identifier , identifier )))) ;) (return_statement "return uVar3;" return identifier ;) })) })) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined4 uVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar19;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  int iVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  byte *pbVar26;\n  code *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar24 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar12 = (byte *)pattern;\n  pbVar13 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern);\n  puVar21 = PTR___progname_0002f108;\n  iVar9 = (int)pattern[1];\n  if (iVar9 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = (patternlist *)&list;\n    puVar4 = auStack_68;\n    unaff_s6 = pbVar20;\n    do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return -1;\n  }\n  pcVar27 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar21 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar21 + 0x1e840;\n  puVar5 = *(undefined4 **)(puVar21 + 0x16a6c);\n  *(undefined1 **)(puVar24 + -8) = auStack_68;\n  *(undefined **)(puVar24 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar24 + -0x160) = puVar2;\n  *(code **)(puVar24 + -4) = pcVar27;\n  *(byte **)(puVar24 + -0xc) = pbVar20;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(int *)(puVar24 + -0x14) = unaff_s5;\n  *(char **)(puVar24 + -0x18) = string;\n  *(undefined **)(puVar24 + -0x20) = puVar1;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(char **)(puVar24 + -0x28) = pattern;\n  *(undefined4 **)(puVar24 + -0x144) = puVar5;\n  *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar5;\n  iVar9 = *(int *)(puVar21 + 0x16878);\n  pbVar20 = pbVar13;\n  pbVar26 = pbVar12;\n  if (pbVar17 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    pattern = (char *)(uVar3 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);\n    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;\n    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;\n    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar26 != pbVar13) {\n    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar10 = *(int *)(puVar24 + -0x2c);\n  if (iVar10 == **(int **)(puVar24 + -0x144)) {\n    return uVar3;\n  }\n  pcVar27 = *(code **)(puVar2 + -0x7df0);\n  pcVar28 = gnu_fnmatch;\n  (*pcVar27)();\n  puVar4 = puVar24 + -0x1e0;\n  pcVar22 = *(code **)(pcVar27 + 0x15df8);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar27 + 0x15e28);\n  *(byte **)(puVar24 + -0x180) = pbVar26;\n  *(byte **)(puVar24 + -0x198) = pbVar17;\n  *(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc;\n  *(code **)(puVar24 + -0x17c) = pcVar28;\n  *(int *)(puVar24 + -0x184) = iVar9;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(int *)(puVar24 + -0x18c) = unaff_s5;\n  *(char **)(puVar24 + -400) = string;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(char **)(puVar24 + -0x1a0) = pattern;\n  *(int *)(puVar24 + -0x1b4) = iVar10;\n  *(byte **)(puVar24 + -0x1b8) = pbVar12;\n  *(int *)(puVar24 + -0x1a4) = *piVar6;\n  iVar9 = (*pcVar22)();\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  if (iVar9 != 1) {\n    puVar16 = puVar24 + -0x1ac;\n    pcVar27 = *(code **)(iVar10 + -0x7dac);\n    puVar19 = puVar24 + -0x1b4;\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);\n    pbVar13 = (byte *)(iVar9 + 1);\n    iVar10 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar12 = *(byte **)(puVar24 + -0x1b8);\n  iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12);\n  *(byte **)(puVar24 + -0x1d0) = pbVar20;\n  iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))\n  ;\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  puVar4 = puVar24 + -0x1e0;\nLAB_00019590:\n  iVar11 = *(int *)(puVar24 + -0x1a4);\n  pcVar27 = *(code **)(iVar10 + -0x7df0);\n  if (iVar11 == *piVar6) {\n    return iVar9;\n  }\n  pcVar28 = rpl_freopen;\n  (*pcVar27)();\n  pcVar22 = *(code **)(pcVar27 + 0x15a74);\n  *(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0;\n  *(byte **)(puVar4 + -0xc) = pbVar13;\n  *(int **)(puVar4 + -0x14) = piVar6;\n  *(int *)(puVar4 + -0x18) = iVar9;\n  *(code **)(puVar4 + -4) = pcVar28;\n  *(char **)(puVar4 + -8) = string;\n  *(byte **)(puVar4 + -0x10) = pbVar20;\n  iVar9 = (*pcVar22)();\n  if ((iVar9 != 0) && (iVar11 != 0)) {\n    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);\n    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);\n    if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }\n  }\n  return iVar9;\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  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined4 uVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar19;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  int iVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  byte *pbVar26;\n  code *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar24 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar12 = (byte *)pattern;\n  pbVar13 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern);\n  puVar21 = PTR___progname_0002f108;\n  iVar9 = (int)pattern[1];\n  if (iVar9 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = (patternlist *)&list;\n    puVar4 = auStack_68;\n    unaff_s6 = pbVar20;\n    do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return -1;\n  }\n  pcVar27 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar21 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar21 + 0x1e840;\n  puVar5 = *(undefined4 **)(puVar21 + 0x16a6c);\n  *(undefined1 **)(puVar24 + -8) = auStack_68;\n  *(undefined **)(puVar24 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar24 + -0x160) = puVar2;\n  *(code **)(puVar24 + -4) = pcVar27;\n  *(byte **)(puVar24 + -0xc) = pbVar20;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(int *)(puVar24 + -0x14) = unaff_s5;\n  *(char **)(puVar24 + -0x18) = string;\n  *(undefined **)(puVar24 + -0x20) = puVar1;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(char **)(puVar24 + -0x28) = pattern;\n  *(undefined4 **)(puVar24 + -0x144) = puVar5;\n  *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar5;\n  iVar9 = *(int *)(puVar21 + 0x16878);\n  pbVar20 = pbVar13;\n  pbVar26 = pbVar12;\n  if (pbVar17 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    pattern = (char *)(uVar3 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);\n    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;\n    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;\n    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar26 != pbVar13) {\n    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar10 = *(int *)(puVar24 + -0x2c);\n  if (iVar10 == **(int **)(puVar24 + -0x144)) {\n    return uVar3;\n  }\n  pcVar27 = *(code **)(puVar2 + -0x7df0);\n  pcVar28 = gnu_fnmatch;\n  (*pcVar27)();\n  puVar4 = puVar24 + -0x1e0;\n  pcVar22 = *(code **)(pcVar27 + 0x15df8);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar27 + 0x15e28);\n  *(byte **)(puVar24 + -0x180) = pbVar26;\n  *(byte **)(puVar24 + -0x198) = pbVar17;\n  *(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc;\n  *(code **)(puVar24 + -0x17c) = pcVar28;\n  *(int *)(puVar24 + -0x184) = iVar9;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(int *)(puVar24 + -0x18c) = unaff_s5;\n  *(char **)(puVar24 + -400) = string;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(char **)(puVar24 + -0x1a0) = pattern;\n  *(int *)(puVar24 + -0x1b4) = iVar10;\n  *(byte **)(puVar24 + -0x1b8) = pbVar12;\n  *(int *)(puVar24 + -0x1a4) = *piVar6;\n  iVar9 = (*pcVar22)();\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  if (iVar9 != 1) {\n    puVar16 = puVar24 + -0x1ac;\n    pcVar27 = *(code **)(iVar10 + -0x7dac);\n    puVar19 = puVar24 + -0x1b4;\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);\n    pbVar13 = (byte *)(iVar9 + 1);\n    iVar10 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar12 = *(byte **)(puVar24 + -0x1b8);\n  iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12);\n  *(byte **)(puVar24 + -0x1d0) = pbVar20;\n  iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))\n  ;\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  puVar4 = puVar24 + -0x1e0;\nLAB_00019590:\n  iVar11 = *(int *)(puVar24 + -0x1a4);\n  pcVar27 = *(code **)(iVar10 + -0x7df0);\n  if (iVar11 == *piVar6) {\n    return iVar9;\n  }\n  pcVar28 = rpl_freopen;\n  (*pcVar27)();\n  pcVar22 = *(code **)(pcVar27 + 0x15a74);\n  *(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0;\n  *(byte **)(puVar4 + -0xc) = pbVar13;\n  *(int **)(puVar4 + -0x14) = piVar6;\n  *(int *)(puVar4 + -0x18) = iVar9;\n  *(code **)(puVar4 + -4) = pcVar28;\n  *(char **)(puVar4 + -8) = string;\n  *(byte **)(puVar4 + -0x10) = pbVar20;\n  iVar9 = (*pcVar22)();\n  if ((iVar9 != 0) && (iVar11 != 0)) {\n    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);\n    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);\n    if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }\n  }\n  return iVar9;\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  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  int iVar7;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined4 uVar14;\n  patternlist *ppVar15;\n  undefined1 *puVar16;\n  uint unaff_s1;\n  byte *pbVar17;\n  byte *pbVar18;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar19;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  int iVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  byte *pbVar26;\n  code *pcVar27;\n  code *pcVar28;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar24 = auStack_68;\n  pbVar20 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar12 = (byte *)pattern;\n  pbVar13 = (byte *)string;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern);\n  puVar21 = PTR___progname_0002f108;\n  iVar9 = (int)pattern[1];\n  if (iVar9 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = (patternlist *)&list;\n    puVar4 = auStack_68;\n    unaff_s6 = pbVar20;\n    do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return -1;\n  }\n  pcVar27 = internal_fnmatch;\n  pbVar18 = local_2c;\n  puVar21 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar21 + 0x1e840;\n  puVar5 = *(undefined4 **)(puVar21 + 0x16a6c);\n  *(undefined1 **)(puVar24 + -8) = auStack_68;\n  *(undefined **)(puVar24 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar24 + -0x160) = puVar2;\n  *(code **)(puVar24 + -4) = pcVar27;\n  *(byte **)(puVar24 + -0xc) = pbVar20;\n  *(byte **)(puVar24 + -0x10) = unaff_s6;\n  *(int *)(puVar24 + -0x14) = unaff_s5;\n  *(char **)(puVar24 + -0x18) = string;\n  *(undefined **)(puVar24 + -0x20) = puVar1;\n  *(uint *)(puVar24 + -0x24) = unaff_s1;\n  *(char **)(puVar24 + -0x28) = pattern;\n  *(undefined4 **)(puVar24 + -0x144) = puVar5;\n  *(byte **)(puVar24 + -0x154) = pbVar18 + 1;\n  pbVar17 = (byte *)(uint)*pbVar18;\n  *(undefined4 *)(puVar24 + -0x2c) = *puVar5;\n  iVar9 = *(int *)(puVar21 + 0x16878);\n  pbVar20 = pbVar13;\n  pbVar26 = pbVar12;\n  if (pbVar17 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    pattern = (char *)(uVar3 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);\n    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;\n    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;\n    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar26 != pbVar13) {\n    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar10 = *(int *)(puVar24 + -0x2c);\n  if (iVar10 == **(int **)(puVar24 + -0x144)) {\n    return uVar3;\n  }\n  pcVar27 = *(code **)(puVar2 + -0x7df0);\n  pcVar28 = gnu_fnmatch;\n  (*pcVar27)();\n  puVar4 = puVar24 + -0x1e0;\n  pcVar22 = *(code **)(pcVar27 + 0x15df8);\n  *(uint *)(puVar24 + -0x19c) = unaff_s1;\n  piVar6 = *(int **)(pcVar27 + 0x15e28);\n  *(byte **)(puVar24 + -0x180) = pbVar26;\n  *(byte **)(puVar24 + -0x198) = pbVar17;\n  *(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc;\n  *(code **)(puVar24 + -0x17c) = pcVar28;\n  *(int *)(puVar24 + -0x184) = iVar9;\n  *(byte **)(puVar24 + -0x188) = unaff_s6;\n  *(int *)(puVar24 + -0x18c) = unaff_s5;\n  *(char **)(puVar24 + -400) = string;\n  *(byte **)(puVar24 + -0x194) = pbVar13;\n  *(char **)(puVar24 + -0x1a0) = pattern;\n  *(int *)(puVar24 + -0x1b4) = iVar10;\n  *(byte **)(puVar24 + -0x1b8) = pbVar12;\n  *(int *)(puVar24 + -0x1a4) = *piVar6;\n  iVar9 = (*pcVar22)();\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  if (iVar9 != 1) {\n    puVar16 = puVar24 + -0x1ac;\n    pcVar27 = *(code **)(iVar10 + -0x7dac);\n    puVar19 = puVar24 + -0x1b4;\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);\n    pbVar13 = (byte *)(iVar9 + 1);\n    iVar10 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar12 = *(byte **)(puVar24 + -0x1b8);\n  iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12);\n  *(byte **)(puVar24 + -0x1d0) = pbVar20;\n  iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))\n  ;\n  iVar10 = *(int *)(puVar24 + -0x1c8);\n  puVar4 = puVar24 + -0x1e0;\nLAB_00019590:\n  iVar11 = *(int *)(puVar24 + -0x1a4);\n  pcVar27 = *(code **)(iVar10 + -0x7df0);\n  if (iVar11 == *piVar6) {\n    return iVar9;\n  }\n  pcVar28 = rpl_freopen;\n  (*pcVar27)();\n  pcVar22 = *(code **)(pcVar27 + 0x15a74);\n  *(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0;\n  *(byte **)(puVar4 + -0xc) = pbVar13;\n  *(int **)(puVar4 + -0x14) = piVar6;\n  *(int *)(puVar4 + -0x18) = iVar9;\n  *(code **)(puVar4 + -4) = pcVar28;\n  *(char **)(puVar4 + -8) = string;\n  *(byte **)(puVar4 + -0x10) = pbVar20;\n  iVar9 = (*pcVar22)();\n  if ((iVar9 != 0) && (iVar11 != 0)) {\n    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);\n    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);\n    if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }\n  }\n  return iVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type 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 "undefined4 uVar14;" type_identifier 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 "int unaff_s5;" primitive_type identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * 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 "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * 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 "puVar1 = PTR___stack_chk_guard_0002f30c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0002f30c" identifier = identifier) ;) (expression_statement "puVar24 = auStack_68;" (assignment_expression "puVar24 = 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_0002f30c;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_0002f30c" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_0002f30c" * (cast_expression "(byte **)PTR___stack_chk_guard_0002f30c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar12 = (byte *)pattern;" (assignment_expression "pbVar12 = (byte *)pattern" identifier = (cast_expression "(byte *)pattern" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)string;" (assignment_expression "pbVar13 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(pattern)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0002f29c)(pattern)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0002f29c)(pattern)" (parenthesized_expression "(*(code *)PTR_strlen_0002f29c)" ( (pointer_expression "*(code *)PTR_strlen_0002f29c" * (cast_expression "(code *)PTR_strlen_0002f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattern)" ( identifier ))))) ;) (expression_statement "puVar21 = PTR___progname_0002f108;" (assignment_expression "puVar21 = PTR___progname_0002f108" identifier = identifier) ;) (expression_statement "iVar9 = (int)pattern[1];" (assignment_expression "iVar9 = (int)pattern[1]" identifier = (cast_expression "(int)pattern[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pattern[1]" identifier [ number_literal ]))) ;) (if_statement "if (iVar9 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = (patternlist *)&list;\n    puVar4 = auStack_68;\n    unaff_s6 = pbVar20;\n    do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(opt - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = (patternlist *)&list;\n    puVar4 = auStack_68;\n    unaff_s6 = pbVar20;\n    do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);\n  }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = 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 "puVar2 = PTR_DAT_0002f118 + -0x231c;" (assignment_expression "puVar2 = PTR_DAT_0002f118 + -0x231c" identifier = (binary_expression "PTR_DAT_0002f118 + -0x231c" 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 "puVar4 = auStack_68;" (assignment_expression "puVar4 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar20;" (assignment_expression "unaff_s6 = pbVar20" identifier = identifier) ;) (do_statement "do {\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    } while (iVar9 != 0);" do (compound_statement "{\n      while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }\n      pbVar12 = &DAT_c0000601;\n      uVar3 = iVar9 - 0x21U & 0xff;\n      pbVar13 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }\n      if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }\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      pbVar13 = pbVar20 + -(int)unaff_s6;\n      pbVar17 = pbVar20 + 1;\n      iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar25 = puVar24 + iVar10;\n      ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);\n      puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);\n      iVar9 = (int)(char)pbVar20[1];\n      *puVar4 = 0;\n      ppVar15->next = (patternlist *)0x0;\n      local_34->next = ppVar15;\n      pbVar12 = unaff_s6;\n      unaff_s6 = pbVar17;\n      pbVar20 = pbVar17;\n      puVar24 = puVar24 + iVar10;\n      local_34 = ppVar15;\n      puVar4 = puVar25;\n    }" { (while_statement "while (puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b) {\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }" while (parenthesized_expression "(puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b)" ( (comma_expression "puVar24 = puVar4, unaff_s3 = puVar21, iVar9 == 0x5b" (assignment_expression "puVar24 = puVar4" identifier = identifier) , (comma_expression "unaff_s3 = puVar21, iVar9 == 0x5b" (assignment_expression "unaff_s3 = puVar21" identifier = identifier) , (binary_expression "iVar9 == 0x5b" identifier == number_literal))) )) (compound_statement "{\n        if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }\n        bVar8 = pbVar20[1];\n        pbVar18 = pbVar20 + 1;\n        if ((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 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        pbVar12 = (byte *)0x5d;\n        while (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }\n        iVar9 = (int)(char)pbVar18[1];\njoined_r0x00018418:\n        puVar4 = puVar24;\n        if (iVar9 == 0) goto LAB_000182c4;\n      }" { (if_statement "if (*(int *)(puVar21 + -0xb20) == 0) {\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }" if (parenthesized_expression "(*(int *)(puVar21 + -0xb20) == 0)" ( (binary_expression "*(int *)(puVar21 + -0xb20) == 0" (pointer_expression "*(int *)(puVar21 + -0xb20)" * (cast_expression "(int *)(puVar21 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xb20)" ( (binary_expression "puVar21 + -0xb20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar14 = 0xffffffff;\n          if (iVar9 != 0) {\n            uVar14 = 1;\n          }\n          *(undefined4 *)(puVar21 + -0xb20) = uVar14;\n        }" { (expression_statement "iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2);" (assignment_expression "iVar9 = (*(code *)PTR_getenv_0002f2c0)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0002f2c0)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0002f2c0)" ( (pointer_expression "*(code *)PTR_getenv_0002f2c0" * (cast_expression "(code *)PTR_getenv_0002f2c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar9 != 0) {\n            uVar14 = 1;\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar14 = 1;\n          }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar21 + -0xb20) = uVar14;" (assignment_expression "*(undefined4 *)(puVar21 + -0xb20) = uVar14" (pointer_expression "*(undefined4 *)(puVar21 + -0xb20)" * (cast_expression "(undefined4 *)(puVar21 + -0xb20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xb20)" ( (binary_expression "puVar21 + -0xb20" 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 *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e)))) {\n          bVar8 = pbVar20[2];\n          pbVar18 = pbVar20 + 2;\n        }" if (parenthesized_expression "((bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e))))" ( (binary_expression "(bVar8 == 0x21) || ((*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e)))" (parenthesized_expression "(bVar8 == 0x21)" ( (binary_expression "bVar8 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e))" ( (binary_expression "*(int *)(puVar21 + -0xb20) < 0 && (bVar8 == 0x5e)" (binary_expression "*(int *)(puVar21 + -0xb20) < 0" (pointer_expression "*(int *)(puVar21 + -0xb20)" * (cast_expression "(int *)(puVar21 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + -0xb20)" ( (binary_expression "puVar21 + -0xb20" 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 "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 (pbVar20 = pbVar18 + 1, bVar8 != 0x5d) {\n          if (bVar8 == 0) goto LAB_000182c4;\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_000182c4;\n          pbVar18 = pbVar20;\n          bVar8 = *pbVar20;\n        }" { (if_statement "if (bVar8 == 0) goto LAB_000182c4;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" 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 "iVar9 = (int)(char)pbVar18[1];" (assignment_expression "iVar9 = (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 ])))) ;) (labeled_statement "joined_r0x00018418:\n        puVar4 = puVar24;" statement_identifier : (expression_statement "puVar4 = puVar24;" (assignment_expression "puVar4 = puVar24" identifier = identifier) ;)) (if_statement "if (iVar9 == 0) goto LAB_000182c4;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" goto statement_identifier ;)) })) (expression_statement "pbVar12 = &DAT_c0000601;" (assignment_expression "pbVar12 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar9 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar9 - 0x21U & 0xff" identifier = (binary_expression "iVar9 - 0x21U & 0xff" (binary_expression "iVar9 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar13 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar13 = (byte *)(uint)(uVar3 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar3 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar3 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < 0x20)" ( (binary_expression "uVar3 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar13 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\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        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }\n        if (iVar9 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < opt - 0x3fU) {\n          local_44 = pbVar20 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }\n        break;\n      }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar3 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar3 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar3 & 0x1f)" number_literal >> (parenthesized_expression "(uVar3 & 0x1f)" ( (binary_expression "uVar3 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n          iVar9 = (int)(char)pbVar20[1];\n          if (iVar9 != 0x28) goto joined_r0x0001842c;\n          pbVar13 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar20 = pbVar20 + 1;\n          uVar3 = 7;\n        }" { (expression_statement "iVar9 = (int)(char)pbVar20[1];" (assignment_expression "iVar9 = (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 (iVar9 != 0x28) goto joined_r0x0001842c;" if (parenthesized_expression "(iVar9 != 0x28)" ( (binary_expression "iVar9 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0001842c;" 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 "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar9 != 0x29) goto LAB_00018428;" if (parenthesized_expression "(iVar9 != 0x29)" ( (binary_expression "iVar9 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00018428;" goto statement_identifier ;)) (if_statement "if (unaff_s5 != 0) {\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }" if (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = (int)(char)pbVar20[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;\n          goto joined_r0x00018418;\n        }" { (expression_statement "iVar9 = (int)(char)pbVar20[1];" (assignment_expression "iVar9 = (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 = unaff_s5 + -1;" (assignment_expression "unaff_s5 = unaff_s5 + -1" identifier = (binary_expression "unaff_s5 + -1" identifier + number_literal)) ;) (labeled_statement "joined_r0x0001842c:\n          pbVar20 = pbVar20 + 1;" statement_identifier : (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00018418;" goto statement_identifier ;) })) (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          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\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          iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);\n          *puVar4 = 0;\n          ((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;\n          local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18);\n          if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }\n          iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return iVar9;\n        }" { (expression_statement "iVar9 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar9 = -(((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 "puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6);" (assignment_expression "puVar4 = (undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                   (*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)\n                             (puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24 + iVar9 + 0x1c,unaff_s6,(int)pbVar20 - (int)unaff_s6)" ( (binary_expression "puVar24 + iVar9 + 0x1c" (binary_expression "puVar24 + iVar9" 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 "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0;" (assignment_expression "((patternlist *)(puVar24 + iVar9 + 0x18))->next = (patternlist *)0x0" (field_expression "((patternlist *)(puVar24 + iVar9 + 0x18))->next" (parenthesized_expression "((patternlist *)(puVar24 + iVar9 + 0x18))" ( (cast_expression "(patternlist *)(puVar24 + iVar9 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar9 + 0x18)" ( (binary_expression "puVar24 + iVar9 + 0x18" (binary_expression "puVar24 + iVar9" 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 *)(puVar24 + iVar9 + 0x18);" (assignment_expression "local_34->next = (patternlist *)(puVar24 + iVar9 + 0x18)" (field_expression "local_34->next" identifier -> field_identifier) = (cast_expression "(patternlist *)(puVar24 + iVar9 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar9 + 0x18)" ( (binary_expression "puVar24 + iVar9 + 0x18" (binary_expression "puVar24 + iVar9" identifier + identifier) + number_literal) )))) ;) (if_statement "if (list == (patternlist *)0x0) {\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\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            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }" { (expression_statement "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22f8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return iVar9;" return identifier ;) })) (if_statement "if (pbVar20[-1] == 0x29) {\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }" if (parenthesized_expression "(pbVar20[-1] == 0x29)" ( (binary_expression "pbVar20[-1] == 0x29" (subscript_expression "pbVar20[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }\n            iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return iVar9;\n          }" { (if_statement "if (opt - 0x21U < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }" if (parenthesized_expression "(opt - 0x21U < 0x20)" ( (binary_expression "opt - 0x21U < 0x20" (binary_expression "opt - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00018524 */\n                    /* WARNING: Treating indirect jump as call */\n              iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;\n              return iVar9;\n            }" { comment comment (expression_statement "iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()\n              ;" (assignment_expression "iVar9 = (*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110))" ( (binary_expression "&_gp + *(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)" * (cast_expression "(int *)(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110)" ( (binary_expression "PTR_DAT_0002f118 + (opt - 0x21U) * 4 + -0x2110" (binary_expression "PTR_DAT_0002f118 + (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 iVar9;" return identifier ;) })) (expression_statement "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22d4" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "iVar9 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22e8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return iVar9;" return identifier ;) })) (break_statement "break;" break ;) })) (if_statement "if ((iVar9 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }" if (parenthesized_expression "((iVar9 != 0x7c) || (unaff_s5 != 0))" ( (binary_expression "(iVar9 != 0x7c) || (unaff_s5 != 0)" (parenthesized_expression "(iVar9 != 0x7c)" ( (binary_expression "iVar9 != 0x7c" identifier != number_literal) )) || (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];\n        goto joined_r0x0001842c;\n      }" { (labeled_statement "LAB_00018428:\n        iVar9 = (int)(char)pbVar20[1];" statement_identifier : (expression_statement "iVar9 = (int)(char)pbVar20[1];" (assignment_expression "iVar9 = (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 ])))) ;)) (goto_statement "goto joined_r0x0001842c;" goto statement_identifier ;) })) (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 "pbVar13 = pbVar20 + -(int)unaff_s6;" (assignment_expression "pbVar13 = 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 "iVar10 = -(((uint)(pbVar18 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(((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 "puVar25 = puVar24 + iVar10;" (assignment_expression "puVar25 = puVar24 + iVar10" identifier = (binary_expression "puVar24 + iVar10" identifier + identifier)) ;) (expression_statement "ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18);" (assignment_expression "ppVar15 = (patternlist *)(puVar24 + iVar10 + 0x18)" identifier = (cast_expression "(patternlist *)(puVar24 + iVar10 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar10 + 0x18)" ( (binary_expression "puVar24 + iVar10 + 0x18" (binary_expression "puVar24 + iVar10" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)(puVar24 + iVar10 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar24 + iVar10 + 0x1c)" ( (binary_expression "puVar24 + iVar10 + 0x1c" (binary_expression "puVar24 + iVar10" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = (int)(char)pbVar20[1];" (assignment_expression "iVar9 = (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 "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * 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 "pbVar12 = unaff_s6;" (assignment_expression "pbVar12 = 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 "puVar24 = puVar24 + iVar10;" (assignment_expression "puVar24 = puVar24 + iVar10" identifier = (binary_expression "puVar24 + iVar10" identifier + identifier)) ;) (expression_statement "local_34 = ppVar15;" (assignment_expression "local_34 = ppVar15" identifier = identifier) ;) (expression_statement "puVar4 = puVar25;" (assignment_expression "puVar4 = puVar25" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return -1;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar1) {\n    return -1;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar1)" ( (binary_expression "local_2c == *(byte **)puVar1" identifier == (pointer_expression "*(byte **)puVar1" * (cast_expression "(byte **)puVar1" ( (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 "pcVar27 = internal_fnmatch;" (assignment_expression "pcVar27 = internal_fnmatch" identifier = identifier) ;) (expression_statement "pbVar18 = local_2c;" (assignment_expression "pbVar18 = local_2c" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_0002f2f0;" (assignment_expression "puVar21 = PTR___stack_chk_fail_0002f2f0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002f2f0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002f2f0" * (cast_expression "(code *)PTR___stack_chk_fail_0002f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar21 + 0x1e840;" (assignment_expression "puVar2 = puVar21 + 0x1e840" identifier = (binary_expression "puVar21 + 0x1e840" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar21 + 0x16a6c);" (assignment_expression "puVar5 = *(undefined4 **)(puVar21 + 0x16a6c)" identifier = (pointer_expression "*(undefined4 **)(puVar21 + 0x16a6c)" * (cast_expression "(undefined4 **)(puVar21 + 0x16a6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x16a6c)" ( (binary_expression "puVar21 + 0x16a6c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar24 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar24 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar24 + -8)" * (cast_expression "(undefined1 **)(puVar24 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -8)" ( (binary_expression "puVar24 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar24 + -0x1c) = unaff_s3;" (assignment_expression "*(undefined **)(puVar24 + -0x1c) = unaff_s3" (pointer_expression "*(undefined **)(puVar24 + -0x1c)" * (cast_expression "(undefined **)(puVar24 + -0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1c)" ( (binary_expression "puVar24 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar24 + -0x160) = puVar2;" (assignment_expression "*(undefined **)(puVar24 + -0x160) = puVar2" (pointer_expression "*(undefined **)(puVar24 + -0x160)" * (cast_expression "(undefined **)(puVar24 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar24 + -4) = pcVar27;" (assignment_expression "*(code **)(puVar24 + -4) = pcVar27" (pointer_expression "*(code **)(puVar24 + -4)" * (cast_expression "(code **)(puVar24 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -4)" ( (binary_expression "puVar24 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0xc) = pbVar20;" (assignment_expression "*(byte **)(puVar24 + -0xc) = pbVar20" (pointer_expression "*(byte **)(puVar24 + -0xc)" * (cast_expression "(byte **)(puVar24 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0xc)" ( (binary_expression "puVar24 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(puVar24 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(puVar24 + -0x10)" * (cast_expression "(byte **)(puVar24 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x10)" ( (binary_expression "puVar24 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x14) = unaff_s5;" (assignment_expression "*(int *)(puVar24 + -0x14) = unaff_s5" (pointer_expression "*(int *)(puVar24 + -0x14)" * (cast_expression "(int *)(puVar24 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x14)" ( (binary_expression "puVar24 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar24 + -0x18) = string;" (assignment_expression "*(char **)(puVar24 + -0x18) = string" (pointer_expression "*(char **)(puVar24 + -0x18)" * (cast_expression "(char **)(puVar24 + -0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x18)" ( (binary_expression "puVar24 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar24 + -0x20) = puVar1;" (assignment_expression "*(undefined **)(puVar24 + -0x20) = puVar1" (pointer_expression "*(undefined **)(puVar24 + -0x20)" * (cast_expression "(undefined **)(puVar24 + -0x20)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x20)" ( (binary_expression "puVar24 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar24 + -0x24) = unaff_s1;" (assignment_expression "*(uint *)(puVar24 + -0x24) = unaff_s1" (pointer_expression "*(uint *)(puVar24 + -0x24)" * (cast_expression "(uint *)(puVar24 + -0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x24)" ( (binary_expression "puVar24 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar24 + -0x28) = pattern;" (assignment_expression "*(char **)(puVar24 + -0x28) = pattern" (pointer_expression "*(char **)(puVar24 + -0x28)" * (cast_expression "(char **)(puVar24 + -0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x28)" ( (binary_expression "puVar24 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar24 + -0x144) = puVar5;" (assignment_expression "*(undefined4 **)(puVar24 + -0x144) = puVar5" (pointer_expression "*(undefined4 **)(puVar24 + -0x144)" * (cast_expression "(undefined4 **)(puVar24 + -0x144)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x144)" ( (binary_expression "puVar24 + -0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x154) = pbVar18 + 1;" (assignment_expression "*(byte **)(puVar24 + -0x154) = pbVar18 + 1" (pointer_expression "*(byte **)(puVar24 + -0x154)" * (cast_expression "(byte **)(puVar24 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) )))) = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (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 *)(puVar24 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(puVar24 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(puVar24 + -0x2c)" * (cast_expression "(undefined4 *)(puVar24 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x2c)" ( (binary_expression "puVar24 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar9 = *(int *)(puVar21 + 0x16878);" (assignment_expression "iVar9 = *(int *)(puVar21 + 0x16878)" identifier = (pointer_expression "*(int *)(puVar21 + 0x16878)" * (cast_expression "(int *)(puVar21 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x16878)" ( (binary_expression "puVar21 + 0x16878" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = pbVar13;" (assignment_expression "pbVar20 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar26 = pbVar12;" (assignment_expression "pbVar26 = pbVar12" identifier = identifier) ;) (if_statement "if (pbVar17 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    pattern = (char *)(uVar3 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);\n    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;\n    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;\n    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -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    uVar3 = *(uint *)(puVar24 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    pattern = (char *)(uVar3 & 0x10);\n    *(uint *)(puVar24 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);\n    *(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;\n    *(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;\n    *(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;\n    string = (char *)pbVar18;\n    unaff_s6 = (byte *)string_end;\n    do {\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);\n  }" { (expression_statement "uVar3 = *(uint *)(puVar24 + 0x10);" (assignment_expression "uVar3 = *(uint *)(puVar24 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar24 + 0x10)" * (cast_expression "(uint *)(puVar24 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = uVar3 & 2;" (assignment_expression "unaff_s1 = uVar3 & 2" identifier = (binary_expression "uVar3 & 2" identifier & number_literal)) ;) (expression_statement "pattern = (char *)(uVar3 & 0x10);" (assignment_expression "pattern = (char *)(uVar3 & 0x10)" identifier = (cast_expression "(char *)(uVar3 & 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar24 + -0x140) = uVar3 & 5;" (assignment_expression "*(uint *)(puVar24 + -0x140) = uVar3 & 5" (pointer_expression "*(uint *)(puVar24 + -0x140)" * (cast_expression "(uint *)(puVar24 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x140)" ( (binary_expression "puVar24 + -0x140" identifier + number_literal) )))) = (binary_expression "uVar3 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868);" (assignment_expression "*(undefined4 *)(puVar24 + -0x148) = *(undefined4 *)(puVar21 + 0x16868)" (pointer_expression "*(undefined4 *)(puVar24 + -0x148)" * (cast_expression "(undefined4 *)(puVar24 + -0x148)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x148)" ( (binary_expression "puVar24 + -0x148" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar21 + 0x16868)" * (cast_expression "(undefined4 *)(puVar21 + 0x16868)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x16868)" ( (binary_expression "puVar21 + 0x16868" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar24 + -0x14c) = iVar9 + -0x2090;" (assignment_expression "*(int *)(puVar24 + -0x14c) = iVar9 + -0x2090" (pointer_expression "*(int *)(puVar24 + -0x14c)" * (cast_expression "(int *)(puVar24 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x14c)" ( (binary_expression "puVar24 + -0x14c" identifier + number_literal) )))) = (binary_expression "iVar9 + -0x2090" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50;" (assignment_expression "*(int *)(puVar24 + -0x138) = *(int *)(puVar21 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar24 + -0x138)" * (cast_expression "(int *)(puVar24 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x138)" ( (binary_expression "puVar24 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar21 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar21 + 0x16878)" * (cast_expression "(int *)(puVar21 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x16878)" ( (binary_expression "puVar21 + 0x16878" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c;" (assignment_expression "*(int *)(puVar24 + -0x13c) = *(int *)(puVar21 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar24 + -0x13c)" * (cast_expression "(int *)(puVar24 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x13c)" ( (binary_expression "puVar24 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar21 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar21 + 0x16878)" * (cast_expression "(int *)(puVar21 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x16878)" ( (binary_expression "puVar21 + 0x16878" 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        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    } while (pbVar17 != (byte *)0x0);" do (compound_statement "{\n      pbVar18 = pbVar17;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }\n      if (((uint)(pbVar18 + -0x21) & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }\n      uVar3 = 1;\n      pbVar17 = pbVar18;\n      if (pbVar26 == pbVar13) goto LAB_00018b74;\n      pbVar17 = (byte *)(uint)*pbVar26;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar18;\n      if (pbVar17 != pbVar18) goto LAB_00018b74;\n      string = *(char **)(puVar24 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar17 = (byte *)(uint)(byte)*string;\n      pbVar26 = pbVar26 + 1;\n      *(byte **)(puVar24 + -0x154) = (byte *)string + 1;\n    }" { (expression_statement "pbVar18 = pbVar17;" (assignment_expression "pbVar18 = pbVar17" identifier = identifier) ;) (if_statement "if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (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        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar24 + -0x160);" (assignment_expression "puVar2 = *(undefined **)(puVar24 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar24 + -0x160)" * (cast_expression "(undefined **)(puVar24 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3);" (assignment_expression "pbVar18 = (byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar6 + (int)pbVar17 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar6 + (int)pbVar17 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + (int)pbVar17 * 4 + 3)" ( (binary_expression "*piVar6 + (int)pbVar17 * 4 + 3" (binary_expression "*piVar6 + (int)pbVar17 * 4" (pointer_expression "*piVar6" * 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 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\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 0x00018994. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();\n        return iVar9;\n      }" { comment comment (expression_statement "iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))();" (assignment_expression "iVar9 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar24 + -0x14c) +\n                                            ((uint)(pbVar18 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar24 + -0x14c)" * (cast_expression "(int *)(puVar24 + -0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x14c)" ( (binary_expression "puVar24 + -0x14c" identifier + number_literal) )))) + (binary_expression "((uint)(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 iVar9;" return identifier ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar26 == pbVar13) goto LAB_00018b74;" if (parenthesized_expression "(pbVar26 == pbVar13)" ( (binary_expression "pbVar26 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "pbVar17 = (byte *)(uint)*pbVar26;" (assignment_expression "pbVar17 = (byte *)(uint)*pbVar26" identifier = (binary_expression "(byte *)(uint)*pbVar26" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (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        piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar24 + -0x160);\n        pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar24 + -0x160);" (assignment_expression "puVar2 = *(undefined **)(puVar24 + -0x160)" identifier = (pointer_expression "*(undefined **)(puVar24 + -0x160)" * (cast_expression "(undefined **)(puVar24 + -0x160)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x160)" ( (binary_expression "puVar24 + -0x160" identifier + number_literal) ))))) ;) (expression_statement "pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4);" (assignment_expression "pbVar17 = *(byte **)(*piVar6 + (int)pbVar17 * 4)" identifier = (pointer_expression "*(byte **)(*piVar6 + (int)pbVar17 * 4)" * (cast_expression "(byte **)(*piVar6 + (int)pbVar17 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + (int)pbVar17 * 4)" ( (binary_expression "*piVar6 + (int)pbVar17 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "(int)pbVar17 * 4" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar17 != pbVar18) goto LAB_00018b74;" if (parenthesized_expression "(pbVar17 != pbVar18)" ( (binary_expression "pbVar17 != pbVar18" identifier != identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "string = *(char **)(puVar24 + -0x154);" (assignment_expression "string = *(char **)(puVar24 + -0x154)" identifier = (pointer_expression "*(char **)(puVar24 + -0x154)" * (cast_expression "(char **)(puVar24 + -0x154)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (byte *)0x0;" (assignment_expression "unaff_s6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "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 "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar24 + -0x154) = (byte *)string + 1;" (assignment_expression "*(byte **)(puVar24 + -0x154) = (byte *)string + 1" (pointer_expression "*(byte **)(puVar24 + -0x154)" * (cast_expression "(byte **)(puVar24 + -0x154)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x154)" ( (binary_expression "puVar24 + -0x154" identifier + number_literal) )))) = (binary_expression "(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 "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (pbVar26 != pbVar13) {\n    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar26 != pbVar13)" ( (binary_expression "pbVar26 != pbVar13" identifier != identifier) )) (compound_statement "{\n    string = (char *)(*(uint *)(puVar24 + 0x10) & 8);\n    if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }\n  }" { (expression_statement "string = (char *)(*(uint *)(puVar24 + 0x10) & 8);" (assignment_expression "string = (char *)(*(uint *)(puVar24 + 0x10) & 8)" identifier = (cast_expression "(char *)(*(uint *)(puVar24 + 0x10) & 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar24 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar24 + 0x10) & 8" (pointer_expression "*(uint *)(puVar24 + 0x10)" * (cast_expression "(uint *)(puVar24 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (if_statement "if ((byte *)string == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar26 != 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      uVar3 = 1;\n    }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }" else (compound_statement "{\n      uVar3 = (uint)(*pbVar26 != 0x2f);\n    }" { (expression_statement "uVar3 = (uint)(*pbVar26 != 0x2f);" (assignment_expression "uVar3 = (uint)(*pbVar26 != 0x2f)" identifier = (call_expression "(uint)(*pbVar26 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar26 != 0x2f)" ( (binary_expression "*pbVar26 != 0x2f" (pointer_expression "*pbVar26" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00018b74:\n  iVar10 = *(int *)(puVar24 + -0x2c);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar24 + -0x2c);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar24 + -0x2c)" * (cast_expression "(int *)(puVar24 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x2c)" ( (binary_expression "puVar24 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar10 == **(int **)(puVar24 + -0x144)) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar10 == **(int **)(puVar24 + -0x144))" ( (binary_expression "iVar10 == **(int **)(puVar24 + -0x144)" identifier == (pointer_expression "**(int **)(puVar24 + -0x144)" * (pointer_expression "*(int **)(puVar24 + -0x144)" * (cast_expression "(int **)(puVar24 + -0x144)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x144)" ( (binary_expression "puVar24 + -0x144" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar27 = *(code **)(puVar2 + -0x7df0);" (assignment_expression "pcVar27 = *(code **)(puVar2 + -0x7df0)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7df0)" * (cast_expression "(code **)(puVar2 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7df0)" ( (binary_expression "puVar2 + -0x7df0" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = gnu_fnmatch;" (assignment_expression "pcVar28 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = puVar24 + -0x1e0;" (assignment_expression "puVar4 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar22 = *(code **)(pcVar27 + 0x15df8);" (assignment_expression "pcVar22 = *(code **)(pcVar27 + 0x15df8)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x15df8)" * (cast_expression "(code **)(pcVar27 + 0x15df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x15df8)" ( (binary_expression "pcVar27 + 0x15df8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar24 + -0x19c) = unaff_s1;" (assignment_expression "*(uint *)(puVar24 + -0x19c) = unaff_s1" (pointer_expression "*(uint *)(puVar24 + -0x19c)" * (cast_expression "(uint *)(puVar24 + -0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x19c)" ( (binary_expression "puVar24 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar27 + 0x15e28);" (assignment_expression "piVar6 = *(int **)(pcVar27 + 0x15e28)" identifier = (pointer_expression "*(int **)(pcVar27 + 0x15e28)" * (cast_expression "(int **)(pcVar27 + 0x15e28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x15e28)" ( (binary_expression "pcVar27 + 0x15e28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar24 + -0x180) = pbVar26;" (assignment_expression "*(byte **)(puVar24 + -0x180) = pbVar26" (pointer_expression "*(byte **)(puVar24 + -0x180)" * (cast_expression "(byte **)(puVar24 + -0x180)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x180)" ( (binary_expression "puVar24 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x198) = pbVar17;" (assignment_expression "*(byte **)(puVar24 + -0x198) = pbVar17" (pointer_expression "*(byte **)(puVar24 + -0x198)" * (cast_expression "(byte **)(puVar24 + -0x198)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x198)" ( (binary_expression "puVar24 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc;" (assignment_expression "*(code **)(puVar24 + -0x1c8) = pcVar27 + 0x1dbfc" (pointer_expression "*(code **)(puVar24 + -0x1c8)" * (cast_expression "(code **)(puVar24 + -0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) = (binary_expression "pcVar27 + 0x1dbfc" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar24 + -0x17c) = pcVar28;" (assignment_expression "*(code **)(puVar24 + -0x17c) = pcVar28" (pointer_expression "*(code **)(puVar24 + -0x17c)" * (cast_expression "(code **)(puVar24 + -0x17c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x17c)" ( (binary_expression "puVar24 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x184) = iVar9;" (assignment_expression "*(int *)(puVar24 + -0x184) = iVar9" (pointer_expression "*(int *)(puVar24 + -0x184)" * (cast_expression "(int *)(puVar24 + -0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x184)" ( (binary_expression "puVar24 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x188) = unaff_s6;" (assignment_expression "*(byte **)(puVar24 + -0x188) = unaff_s6" (pointer_expression "*(byte **)(puVar24 + -0x188)" * (cast_expression "(byte **)(puVar24 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x188)" ( (binary_expression "puVar24 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x18c) = unaff_s5;" (assignment_expression "*(int *)(puVar24 + -0x18c) = unaff_s5" (pointer_expression "*(int *)(puVar24 + -0x18c)" * (cast_expression "(int *)(puVar24 + -0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x18c)" ( (binary_expression "puVar24 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar24 + -400) = string;" (assignment_expression "*(char **)(puVar24 + -400) = string" (pointer_expression "*(char **)(puVar24 + -400)" * (cast_expression "(char **)(puVar24 + -400)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -400)" ( (binary_expression "puVar24 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x194) = pbVar13;" (assignment_expression "*(byte **)(puVar24 + -0x194) = pbVar13" (pointer_expression "*(byte **)(puVar24 + -0x194)" * (cast_expression "(byte **)(puVar24 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x194)" ( (binary_expression "puVar24 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar24 + -0x1a0) = pattern;" (assignment_expression "*(char **)(puVar24 + -0x1a0) = pattern" (pointer_expression "*(char **)(puVar24 + -0x1a0)" * (cast_expression "(char **)(puVar24 + -0x1a0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1a0)" ( (binary_expression "puVar24 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x1b4) = iVar10;" (assignment_expression "*(int *)(puVar24 + -0x1b4) = iVar10" (pointer_expression "*(int *)(puVar24 + -0x1b4)" * (cast_expression "(int *)(puVar24 + -0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1b4)" ( (binary_expression "puVar24 + -0x1b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar24 + -0x1b8) = pbVar12;" (assignment_expression "*(byte **)(puVar24 + -0x1b8) = pbVar12" (pointer_expression "*(byte **)(puVar24 + -0x1b8)" * (cast_expression "(byte **)(puVar24 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b8)" ( (binary_expression "puVar24 + -0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar24 + -0x1a4) = *piVar6;" (assignment_expression "*(int *)(puVar24 + -0x1a4) = *piVar6" (pointer_expression "*(int *)(puVar24 + -0x1a4)" * (cast_expression "(int *)(puVar24 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a4)" ( (binary_expression "puVar24 + -0x1a4" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar9 = (*pcVar22)();" (assignment_expression "iVar9 = (*pcVar22)()" identifier = (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 1) {\n    puVar16 = puVar24 + -0x1ac;\n    pcVar27 = *(code **)(iVar10 + -0x7dac);\n    puVar19 = puVar24 + -0x1b4;\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);\n    pbVar13 = (byte *)(iVar9 + 1);\n    iVar10 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar16 = puVar24 + -0x1ac;\n    pcVar27 = *(code **)(iVar10 + -0x7dac);\n    puVar19 = puVar24 + -0x1b4;\n    *(undefined4 *)(puVar24 + -0x1ac) = 0;\n    *(undefined4 *)(puVar24 + -0x1a8) = 0;\n    iVar9 = (*pcVar27)(0,puVar19,0,puVar16);\n    pbVar13 = (byte *)(iVar9 + 1);\n    iVar10 = *(int *)(puVar24 + -0x1c8);\n    if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" { (expression_statement "puVar16 = puVar24 + -0x1ac;" (assignment_expression "puVar16 = puVar24 + -0x1ac" identifier = (binary_expression "puVar24 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar27 = *(code **)(iVar10 + -0x7dac);" (assignment_expression "pcVar27 = *(code **)(iVar10 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = puVar24 + -0x1b4;" (assignment_expression "puVar19 = puVar24 + -0x1b4" identifier = (binary_expression "puVar24 + -0x1b4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1ac) = 0;" (assignment_expression "*(undefined4 *)(puVar24 + -0x1ac) = 0" (pointer_expression "*(undefined4 *)(puVar24 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar24 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1ac)" ( (binary_expression "puVar24 + -0x1ac" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1a8) = 0;" (assignment_expression "*(undefined4 *)(puVar24 + -0x1a8) = 0" (pointer_expression "*(undefined4 *)(puVar24 + -0x1a8)" * (cast_expression "(undefined4 *)(puVar24 + -0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a8)" ( (binary_expression "puVar24 + -0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = (*pcVar27)(0,puVar19,0,puVar16);" (assignment_expression "iVar9 = (*pcVar27)(0,puVar19,0,puVar16)" identifier = (call_expression "(*pcVar27)(0,puVar19,0,puVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(0,puVar19,0,puVar16)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar13 = (byte *)(iVar9 + 1);" (assignment_expression "pbVar13 = (byte *)(iVar9 + 1)" identifier = (cast_expression "(byte *)(iVar9 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 1)" ( (binary_expression "iVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar13 != (byte *)0x0) {\n      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\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      iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n      uVar14 = 0x129;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (iVar9 == 0) goto LAB_00019800;\n      pbVar18 = puVar24 + -0x1b8;\n      pbVar12 = pbVar18;\n      string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);\n      pbVar17 = (byte *)string + 1;\n      iVar10 = *(int *)(puVar24 + -0x1c8);\n      if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }\n    }" { (expression_statement "iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);" (assignment_expression "iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16)" identifier = (call_expression "(**(code **)(iVar10 + -0x7dd8))(puVar16)" (parenthesized_expression "(**(code **)(iVar10 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar10 + -0x7dd8)" * (pointer_expression "*(code **)(iVar10 + -0x7dd8)" * (cast_expression "(code **)(iVar10 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dd8)" ( (binary_expression "iVar10 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "uVar14 = 0x129;" (assignment_expression "uVar14 = 0x129" identifier = number_literal) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00019800;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019800;" goto statement_identifier ;)) (expression_statement "pbVar18 = puVar24 + -0x1b8;" (assignment_expression "pbVar18 = puVar24 + -0x1b8" identifier = (binary_expression "puVar24 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar18;" (assignment_expression "pbVar12 = pbVar18" identifier = identifier) ;) (expression_statement "string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16);" (assignment_expression "string = (char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16)" identifier = (cast_expression "(char *)(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar10 + -0x7dac))(0,pbVar18,0,puVar16)" (parenthesized_expression "(**(code **)(iVar10 + -0x7dac))" ( (pointer_expression "**(code **)(iVar10 + -0x7dac)" * (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(0,pbVar18,0,puVar16)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar17 = (byte *)string + 1;" (assignment_expression "pbVar17 = (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 "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (pbVar17 != (byte *)0x0) {\n        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\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        iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar26 = pbVar13 + (int)pbVar17;\n        if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        iVar9 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();\n        iVar10 = *(int *)(puVar24 + -0x1c8);\n        *puVar5 = 0xc;\n        goto LAB_00019590;\n      }" { (expression_statement "iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16);" (assignment_expression "iVar9 = (**(code **)(iVar10 + -0x7dd8))(puVar16)" identifier = (call_expression "(**(code **)(iVar10 + -0x7dd8))(puVar16)" (parenthesized_expression "(**(code **)(iVar10 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar10 + -0x7dd8)" * (pointer_expression "*(code **)(iVar10 + -0x7dd8)" * (cast_expression "(code **)(iVar10 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dd8)" ( (binary_expression "iVar10 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar14 = 0x12d;\n          goto LAB_00019800;\n        }" { (expression_statement "uVar14 = 0x12d;" (assignment_expression "uVar14 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_00019800;" goto statement_identifier ;) })) (expression_statement "pbVar26 = pbVar13 + (int)pbVar17;" (assignment_expression "pbVar26 = pbVar13 + (int)pbVar17" identifier = (binary_expression "pbVar13 + (int)pbVar17" identifier + (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)) {\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" if (parenthesized_expression "((pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000))" ( (binary_expression "(pbVar13 <= pbVar26) && (pbVar26 < (byte *)0x40000000)" (parenthesized_expression "(pbVar13 <= pbVar26)" ( (binary_expression "pbVar13 <= pbVar26" identifier <= identifier) )) && (parenthesized_expression "(pbVar26 < (byte *)0x40000000)" ( (binary_expression "pbVar26 < (byte *)0x40000000" identifier < (cast_expression "(byte *)0x40000000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar9 = (**(code **)(iVar10 + -0x7e28))();\n          iVar10 = *(int *)(puVar24 + -0x1c8);\n          if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" { (if_statement "if (pbVar26 < (byte *)0x7d0) {\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(pbVar26 < (byte *)0x7d0)" ( (binary_expression "pbVar26 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);\n            pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);\n            pbVar26 = (byte *)(pattern_00 + (int)pbVar13);\n            (**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + iVar11 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar11 = -((int)pbVar26 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar26 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar26 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar26 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar26 * 4 + 7U" (binary_expression "(int)pbVar26 * 4" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8);" (assignment_expression "pattern_00 = (wchar_t *)(puVar24 + iVar11 + -0x1c8)" identifier = (cast_expression "(wchar_t *)(puVar24 + iVar11 + -0x1c8)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar11 + -0x1c8)" ( (binary_expression "puVar24 + iVar11 + -0x1c8" (binary_expression "puVar24 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar26 = (byte *)(pattern_00 + (int)pbVar13);" (assignment_expression "pbVar26 = (byte *)(pattern_00 + (int)pbVar13)" identifier = (cast_expression "(byte *)(pattern_00 + (int)pbVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pattern_00 + (int)pbVar13)" ( (binary_expression "pattern_00 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16);" (call_expression "(**(code **)(iVar10 + -0x7dac))(pattern_00,puVar19,pbVar13,puVar16)" (parenthesized_expression "(**(code **)(iVar10 + -0x7dac))" ( (pointer_expression "**(code **)(iVar10 + -0x7dac)" * (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pattern_00,puVar19,pbVar13,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);" (assignment_expression "iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16)" identifier = (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7dd8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" { (labeled_statement "LAB_00019820:\n              do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              } while( true );" do (compound_statement "{\n                uVar14 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);\n              }" { (expression_statement "uVar14 = 0x147;" (assignment_expression "uVar14 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00019800:\n                (**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);" statement_identifier : (expression_statement "(**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88);" (call_expression "(**(code **)(iVar10 + -0x7ec8))\n                          (*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88)" (parenthesized_expression "(**(code **)(iVar10 + -0x7ec8))" ( (pointer_expression "**(code **)(iVar10 + -0x7ec8)" * (pointer_expression "*(code **)(iVar10 + -0x7ec8)" * (cast_expression "(code **)(iVar10 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7ec8)" ( (binary_expression "iVar10 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar10 + -0x7fc8) + -0x229c,*(int *)(iVar10 + -0x7fc8) + -0x22ac\n                           ,uVar14,*(int *)(iVar10 + -0x7fc8) + -0x1f88)" ( (binary_expression "*(int *)(iVar10 + -0x7fc8) + -0x229c" (pointer_expression "*(int *)(iVar10 + -0x7fc8)" * (cast_expression "(int *)(iVar10 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x7fc8)" ( (binary_expression "iVar10 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar10 + -0x7fc8) + -0x22ac" (pointer_expression "*(int *)(iVar10 + -0x7fc8)" * (cast_expression "(int *)(iVar10 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x7fc8)" ( (binary_expression "iVar10 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar10 + -0x7fc8) + -0x1f88" (pointer_expression "*(int *)(iVar10 + -0x7fc8)" * (cast_expression "(int *)(iVar10 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + -0x7fc8)" ( (binary_expression "iVar10 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16);" (call_expression "(**(code **)(iVar10 + -0x7dac))(pbVar26,pbVar18,pbVar17,puVar16)" (parenthesized_expression "(**(code **)(iVar10 + -0x7dac))" ( (pointer_expression "**(code **)(iVar10 + -0x7dac)" * (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pbVar26,pbVar18,pbVar17,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar24 + iVar11 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar24 + iVar11 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + iVar11 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + iVar11 + -0x1d0)" ( (binary_expression "puVar24 + iVar11 + -0x1d0" (binary_expression "puVar24 + iVar11" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar12 = pbVar26;" (assignment_expression "pbVar12 = pbVar26" identifier = identifier) ;) (expression_statement "iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0));" (assignment_expression "iVar9 = internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0))" identifier = (call_expression "internal_fnwmatch(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0))" identifier (argument_list "(pattern_00,(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + iVar11 + -0x1d0))" ( identifier , (cast_expression "(wchar_t *)pbVar26" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar26 + (int)string * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + (int)string * 4)" ( (binary_expression "pbVar26 + (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 *)(puVar24 + iVar11 + -0x1d0)" * (cast_expression "(int *)(puVar24 + iVar11 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar11 + -0x1d0)" ( (binary_expression "puVar24 + iVar11 + -0x1d0" (binary_expression "puVar24 + iVar11" identifier + identifier) + number_literal) )))) )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = pbVar26;" (assignment_expression "pbVar13 = pbVar26" identifier = identifier) ;) (expression_statement "puVar4 = puVar24 + iVar11 + -0x1e0;" (assignment_expression "puVar4 = puVar24 + iVar11 + -0x1e0" identifier = (binary_expression "puVar24 + iVar11 + -0x1e0" (binary_expression "puVar24 + iVar11" identifier + identifier) + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) (expression_statement "iVar9 = (**(code **)(iVar10 + -0x7e28))();" (assignment_expression "iVar9 = (**(code **)(iVar10 + -0x7e28))()" identifier = (call_expression "(**(code **)(iVar10 + -0x7e28))()" (parenthesized_expression "(**(code **)(iVar10 + -0x7e28))" ( (pointer_expression "**(code **)(iVar10 + -0x7e28)" * (pointer_expression "*(code **)(iVar10 + -0x7e28)" * (cast_expression "(code **)(iVar10 + -0x7e28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7e28)" ( (binary_expression "iVar10 + -0x7e28" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(int *)(puVar24 + -0x1bc) = iVar9;\n            pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);\n            (*pcVar27)(iVar9,puVar19,pbVar13,puVar16);\n            iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            if (iVar9 == 0) goto LAB_00019820;\n            pcVar27 = *(code **)(iVar10 + -0x7dac);\n            *(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);\n            (*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);\n            *(byte **)(puVar24 + -0x1d0) = pbVar20;\n            pbVar12 = pbVar26;\n            iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));\n            (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));\n            iVar10 = *(int *)(puVar24 + -0x1c8);\n            pbVar13 = pbVar26;\n            puVar4 = puVar24 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "pcVar27 = *(code **)(iVar10 + -0x7dac);" (assignment_expression "pcVar27 = *(code **)(iVar10 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar24 + -0x1bc) = iVar9;" (assignment_expression "*(int *)(puVar24 + -0x1bc) = iVar9" (pointer_expression "*(int *)(puVar24 + -0x1bc)" * (cast_expression "(int *)(puVar24 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4);" (assignment_expression "pbVar26 = (byte *)(iVar9 + (int)pbVar13 * 4)" identifier = (cast_expression "(byte *)(iVar9 + (int)pbVar13 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)pbVar13 * 4)" ( (binary_expression "iVar9 + (int)pbVar13 * 4" identifier + (binary_expression "(int)pbVar13 * 4" (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar27)(iVar9,puVar19,pbVar13,puVar16);" (call_expression "(*pcVar27)(iVar9,puVar19,pbVar13,puVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(iVar9,puVar19,pbVar13,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16);" (assignment_expression "iVar9 = (**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16)" identifier = (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))(puVar16)" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7dd8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar16)" ( identifier )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00019820;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019820;" goto statement_identifier ;)) (expression_statement "pcVar27 = *(code **)(iVar10 + -0x7dac);" (assignment_expression "pcVar27 = *(code **)(iVar10 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar10 + -0x7dac)" * (cast_expression "(code **)(iVar10 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7dac)" ( (binary_expression "iVar10 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc);" (assignment_expression "*(undefined4 *)(puVar24 + -0x1bc) = *(undefined4 *)(puVar24 + -0x1bc)" (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16);" (call_expression "(*pcVar27)(pbVar26,pbVar18,pbVar17,puVar16)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pbVar26,pbVar18,pbVar17,puVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar24 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar24 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar24 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar12 = pbVar26;" (assignment_expression "pbVar12 = pbVar26" identifier = identifier) ;) (expression_statement "iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0));" (assignment_expression "iVar9 = internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0))" identifier = (call_expression "internal_fnwmatch(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0))" identifier (argument_list "(*(wchar_t **)(puVar24 + -0x1bc),(wchar_t *)pbVar26,\n                                      (wchar_t *)(pbVar26 + (int)string * 4),\n                                      SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar24 + -0x1d0))" ( (pointer_expression "*(wchar_t **)(puVar24 + -0x1bc)" * (cast_expression "(wchar_t **)(puVar24 + -0x1bc)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) , (cast_expression "(wchar_t *)pbVar26" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(wchar_t *)(pbVar26 + (int)string * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + (int)string * 4)" ( (binary_expression "pbVar26 + (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 *)(puVar24 + -0x1d0)" * (cast_expression "(int *)(puVar24 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar24 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8))" ( (pointer_expression "**(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8)" * (pointer_expression "*(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8)" * (cast_expression "(code **)(*(int *)(puVar24 + -0x1c8) + -0x7dc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar24 + -0x1c8) + -0x7dc8)" ( (binary_expression "*(int *)(puVar24 + -0x1c8) + -0x7dc8" (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar24 + -0x1bc))" ( (pointer_expression "*(undefined4 *)(puVar24 + -0x1bc)" * (cast_expression "(undefined4 *)(puVar24 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1bc)" ( (binary_expression "puVar24 + -0x1bc" identifier + number_literal) )))) ))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "pbVar13 = pbVar26;" (assignment_expression "pbVar13 = pbVar26" identifier = identifier) ;) (expression_statement "puVar4 = puVar24 + -0x1e0;" (assignment_expression "puVar4 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) (expression_statement "iVar9 = -1;" (assignment_expression "iVar9 = -1" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar10 + -0x7e60))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar10 + -0x7e60))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar10 + -0x7e60))()" (parenthesized_expression "(**(code **)(iVar10 + -0x7e60))" ( (pointer_expression "**(code **)(iVar10 + -0x7e60)" * (pointer_expression "*(code **)(iVar10 + -0x7e60)" * (cast_expression "(code **)(iVar10 + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7e60)" ( (binary_expression "iVar10 + -0x7e60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) })) (expression_statement "pbVar12 = *(byte **)(puVar24 + -0x1b8);" (assignment_expression "pbVar12 = *(byte **)(puVar24 + -0x1b8)" identifier = (pointer_expression "*(byte **)(puVar24 + -0x1b8)" * (cast_expression "(byte **)(puVar24 + -0x1b8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b8)" ( (binary_expression "puVar24 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12);" (assignment_expression "iVar9 = (**(code **)(iVar10 + -0x7e44))(pbVar12)" identifier = (call_expression "(**(code **)(iVar10 + -0x7e44))(pbVar12)" (parenthesized_expression "(**(code **)(iVar10 + -0x7e44))" ( (pointer_expression "**(code **)(iVar10 + -0x7e44)" * (pointer_expression "*(code **)(iVar10 + -0x7e44)" * (cast_expression "(code **)(iVar10 + -0x7e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7e44)" ( (binary_expression "iVar10 + -0x7e44" identifier + number_literal) ))))) )) (argument_list "(pbVar12)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar24 + -0x1d0) = pbVar20;" (assignment_expression "*(byte **)(puVar24 + -0x1d0) = pbVar20" (pointer_expression "*(byte **)(puVar24 + -0x1d0)" * (cast_expression "(byte **)(puVar24 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))\n  ;" (assignment_expression "iVar9 = internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))" identifier = (call_expression "internal_fnmatch(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))" identifier (argument_list "(*(char **)(puVar24 + -0x1b4),(char *)pbVar12,(char *)(pbVar12 + iVar9),\n                           SUB41((uint)((int)pbVar20 << 0x1d) >> 0x1f,0),*(int *)(puVar24 + -0x1d0))" ( (pointer_expression "*(char **)(puVar24 + -0x1b4)" * (cast_expression "(char **)(puVar24 + -0x1b4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + -0x1b4)" ( (binary_expression "puVar24 + -0x1b4" identifier + number_literal) )))) , (cast_expression "(char *)pbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)(pbVar12 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + iVar9)" ( (binary_expression "pbVar12 + iVar9" 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 *)(puVar24 + -0x1d0)" * (cast_expression "(int *)(puVar24 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1d0)" ( (binary_expression "puVar24 + -0x1d0" identifier + number_literal) )))) )))) ;) (expression_statement "iVar10 = *(int *)(puVar24 + -0x1c8);" (assignment_expression "iVar10 = *(int *)(puVar24 + -0x1c8)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1c8)" * (cast_expression "(int *)(puVar24 + -0x1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1c8)" ( (binary_expression "puVar24 + -0x1c8" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar24 + -0x1e0;" (assignment_expression "puVar4 = puVar24 + -0x1e0" identifier = (binary_expression "puVar24 + -0x1e0" identifier + number_literal)) ;) (labeled_statement "LAB_00019590:\n  iVar11 = *(int *)(puVar24 + -0x1a4);" statement_identifier : (expression_statement "iVar11 = *(int *)(puVar24 + -0x1a4);" (assignment_expression "iVar11 = *(int *)(puVar24 + -0x1a4)" identifier = (pointer_expression "*(int *)(puVar24 + -0x1a4)" * (cast_expression "(int *)(puVar24 + -0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -0x1a4)" ( (binary_expression "puVar24 + -0x1a4" identifier + number_literal) ))))) ;)) (expression_statement "pcVar27 = *(code **)(iVar10 + -0x7df0);" (assignment_expression "pcVar27 = *(code **)(iVar10 + -0x7df0)" identifier = (pointer_expression "*(code **)(iVar10 + -0x7df0)" * (cast_expression "(code **)(iVar10 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7df0)" ( (binary_expression "iVar10 + -0x7df0" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == *piVar6) {\n    return iVar9;\n  }" if (parenthesized_expression "(iVar11 == *piVar6)" ( (binary_expression "iVar11 == *piVar6" identifier == (pointer_expression "*piVar6" * identifier)) )) (compound_statement "{\n    return iVar9;\n  }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "pcVar28 = rpl_freopen;" (assignment_expression "pcVar28 = rpl_freopen" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar22 = *(code **)(pcVar27 + 0x15a74);" (assignment_expression "pcVar22 = *(code **)(pcVar27 + 0x15a74)" identifier = (pointer_expression "*(code **)(pcVar27 + 0x15a74)" * (cast_expression "(code **)(pcVar27 + 0x15a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x15a74)" ( (binary_expression "pcVar27 + 0x15a74" identifier + number_literal) ))))) ;) (expression_statement "*(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0;" (assignment_expression "*(code **)(puVar4 + -0x20) = pcVar27 + 0x1d8b0" (pointer_expression "*(code **)(puVar4 + -0x20)" * (cast_expression "(code **)(puVar4 + -0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) = (binary_expression "pcVar27 + 0x1d8b0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar4 + -0xc) = pbVar13;" (assignment_expression "*(byte **)(puVar4 + -0xc) = pbVar13" (pointer_expression "*(byte **)(puVar4 + -0xc)" * (cast_expression "(byte **)(puVar4 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0xc)" ( (binary_expression "puVar4 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar4 + -0x14) = piVar6;" (assignment_expression "*(int **)(puVar4 + -0x14) = piVar6" (pointer_expression "*(int **)(puVar4 + -0x14)" * (cast_expression "(int **)(puVar4 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x14)" ( (binary_expression "puVar4 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar4 + -0x18) = iVar9;" (assignment_expression "*(int *)(puVar4 + -0x18) = iVar9" (pointer_expression "*(int *)(puVar4 + -0x18)" * (cast_expression "(int *)(puVar4 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18)" ( (binary_expression "puVar4 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar4 + -4) = pcVar28;" (assignment_expression "*(code **)(puVar4 + -4) = pcVar28" (pointer_expression "*(code **)(puVar4 + -4)" * (cast_expression "(code **)(puVar4 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -4)" ( (binary_expression "puVar4 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar4 + -8) = string;" (assignment_expression "*(char **)(puVar4 + -8) = string" (pointer_expression "*(char **)(puVar4 + -8)" * (cast_expression "(char **)(puVar4 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -8)" ( (binary_expression "puVar4 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar4 + -0x10) = pbVar20;" (assignment_expression "*(byte **)(puVar4 + -0x10) = pbVar20" (pointer_expression "*(byte **)(puVar4 + -0x10)" * (cast_expression "(byte **)(puVar4 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x10)" ( (binary_expression "puVar4 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = (*pcVar22)();" (assignment_expression "iVar9 = (*pcVar22)()" identifier = (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar9 != 0) && (iVar11 != 0)) {\n    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);\n    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);\n    if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }\n  }" if (parenthesized_expression "((iVar9 != 0) && (iVar11 != 0))" ( (binary_expression "(iVar9 != 0) && (iVar11 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);\n    iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);\n    if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }\n  }" { (expression_statement "iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9);" (assignment_expression "iVar10 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9)" identifier = (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))(iVar9)" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7e68)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7e68)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7e68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7e68)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7e68" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10);" (assignment_expression "iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10)" identifier = (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))(iVar10,iVar10)" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7da8)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7da8)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7da8)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7da8" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar10,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 < 0) {\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();\n      if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }\n    }" { (expression_statement "piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))();" (assignment_expression "piVar6 = (int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))()" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7e60)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7e60)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7e60)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7e60" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar6 == 9) {\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }" if (parenthesized_expression "(*piVar6 == 9)" ( (binary_expression "*piVar6 == 9" (pointer_expression "*piVar6" * identifier) == number_literal) )) (compound_statement "{\n        iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar23 = *(int *)(puVar4 + -0x20);\n        if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }\n                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);\n        return iVar9;\n      }" { (expression_statement "iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000);" (assignment_expression "iVar7 = (**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" identifier = (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7e4c)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7e4c" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" ( (binary_expression "*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8) + -0x2e24" (pointer_expression "*(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8)" * (cast_expression "(int *)(*(int *)(puVar4 + -0x20) + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7fc8)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7fc8" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar23 = *(int *)(puVar4 + -0x20);" (assignment_expression "iVar23 = *(int *)(puVar4 + -0x20)" identifier = (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != iVar7) {\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }" if (parenthesized_expression "(iVar10 != iVar7)" ( (binary_expression "iVar10 != iVar7" identifier != identifier) )) (compound_statement "{\n          iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);\n          if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }\n          (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();\n          iVar23 = *(int *)(puVar4 + -0x20);\n        }" { (expression_statement "iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10);" (assignment_expression "iVar10 = (**(code **)(iVar23 + -0x7da8))(iVar7,iVar10)" identifier = (call_expression "(**(code **)(iVar23 + -0x7da8))(iVar7,iVar10)" (parenthesized_expression "(**(code **)(iVar23 + -0x7da8))" ( (pointer_expression "**(code **)(iVar23 + -0x7da8)" * (pointer_expression "*(code **)(iVar23 + -0x7da8)" * (cast_expression "(code **)(iVar23 + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + -0x7da8)" ( (binary_expression "iVar23 + -0x7da8" identifier + number_literal) ))))) )) (argument_list "(iVar7,iVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar10 < 0) {\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }" if (parenthesized_expression "(iVar10 < 0)" ( (binary_expression "iVar10 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);\n            return iVar9;\n          }" { (expression_statement "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7);" (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))(iVar7)" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar7)" ( identifier ))) ;) (return_statement "return iVar9;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))();" (call_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))()" (parenthesized_expression "(**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar4 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar4 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar4 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar23 = *(int *)(puVar4 + -0x20);" (assignment_expression "iVar23 = *(int *)(puVar4 + -0x20)" identifier = (pointer_expression "*(int *)(puVar4 + -0x20)" * (cast_expression "(int *)(puVar4 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x20)" ( (binary_expression "puVar4 + -0x20" identifier + number_literal) ))))) ;) })) comment comment (expression_statement "iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9);" (assignment_expression "iVar9 = (**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9)" identifier = (call_expression "(**(code **)(iVar23 + -0x7e3c))(iVar11,pbVar12,iVar9)" (parenthesized_expression "(**(code **)(iVar23 + -0x7e3c))" ( (pointer_expression "**(code **)(iVar23 + -0x7e3c)" * (pointer_expression "*(code **)(iVar23 + -0x7e3c)" * (cast_expression "(code **)(iVar23 + -0x7e3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + -0x7e3c)" ( (binary_expression "iVar23 + -0x7e3c" identifier + number_literal) ))))) )) (argument_list "(iVar11,pbVar12,iVar9)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar9;" return identifier ;) })) })) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}\n\n" (function_definition "uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" type_identifier (function_declarator "FUN_000181b0(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  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int unaff_s5;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * 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 "puVar1 = PTR___stack_chk_guard_0002f30c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0002f30c" identifier = identifier) ;) (expression_statement "puVar22 = auStack_68;" (assignment_expression "puVar22 = auStack_68" identifier = identifier) ;) (expression_statement "pbVar18 = param_2 + 1;" (assignment_expression "pbVar18 = 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_0002f30c;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_0002f30c" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_0002f30c" * (cast_expression "(byte **)PTR___stack_chk_guard_0002f30c" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" identifier = identifier) ;) (expression_statement "pbVar11 = param_3;" (assignment_expression "pbVar11 = param_3" identifier = identifier) ;) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_0002f29c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0002f29c)" ( (pointer_expression "*(code *)PTR_strlen_0002f29c" * (cast_expression "(code *)PTR_strlen_0002f29c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar19 = PTR___progname_0002f108;" (assignment_expression "puVar19 = PTR___progname_0002f108" identifier = identifier) ;) (expression_statement "iVar8 = (int)(char)param_2[1];" (assignment_expression "iVar8 = (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 (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = 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 "puVar2 = PTR_DAT_0002f118 + -0x231c;" (assignment_expression "puVar2 = PTR_DAT_0002f118 + -0x231c" identifier = (binary_expression "PTR_DAT_0002f118 + -0x231c" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "puVar17 = auStack_68;" (assignment_expression "puVar17 = auStack_68" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" identifier = identifier) ;) (do_statement "do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);" do (compound_statement "{\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    }" { (while_statement "while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" while (parenthesized_expression "(puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b)" ( (comma_expression "puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "puVar22 = puVar17" identifier = identifier) , (comma_expression "unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "unaff_s3 = puVar19" identifier = identifier) , (binary_expression "iVar8 == 0x5b" identifier == number_literal))) )) (compound_statement "{\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" { (if_statement "if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" if (parenthesized_expression "(*(int *)(puVar19 + -0xb20) == 0)" ( (binary_expression "*(int *)(puVar19 + -0xb20) == 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" * (cast_expression "(int *)(puVar19 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" { (expression_statement "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);" (assignment_expression "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0002f2c0)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0002f2c0)" ( (pointer_expression "*(code *)PTR_getenv_0002f2c0" * (cast_expression "(code *)PTR_getenv_0002f2c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            uVar12 = 1;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar12 = 1;\n          }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar19 + -0xb20) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0xb20) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0xb20)" * (cast_expression "(undefined4 *)(puVar19 + -0xb20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "bVar7 = pbVar18[1];" (assignment_expression "bVar7 = pbVar18[1]" identifier = (subscript_expression "pbVar18[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar18 + 1;" (assignment_expression "pbVar15 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" if (parenthesized_expression "((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))))" ( (binary_expression "(bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" (parenthesized_expression "(bVar7 == 0x21)" ( (binary_expression "bVar7 == 0x21" identifier == number_literal) )) || (parenthesized_expression "((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" ( (parenthesized_expression "(*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))" ( (binary_expression "*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)" (binary_expression "*(int *)(puVar19 + -0xb20) < 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" * (cast_expression "(int *)(puVar19 + -0xb20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0xb20)" ( (binary_expression "puVar19 + -0xb20" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(bVar7 == 0x5e)" ( (binary_expression "bVar7 == 0x5e" identifier == number_literal) ))) )) ))) )) (compound_statement "{\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" { (expression_statement "bVar7 = pbVar18[2];" (assignment_expression "bVar7 = pbVar18[2]" identifier = (subscript_expression "pbVar18[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar18 + 2;" (assignment_expression "pbVar15 = pbVar18 + 2" identifier = (binary_expression "pbVar18 + 2" identifier + number_literal)) ;) })) (if_statement "if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" if (parenthesized_expression "(bVar7 == 0x5d)" ( (binary_expression "bVar7 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" { (expression_statement "bVar7 = pbVar15[1];" (assignment_expression "bVar7 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10 = (byte *)0x5d;" (assignment_expression "pbVar10 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" while (parenthesized_expression "(pbVar18 = pbVar15 + 1, bVar7 != 0x5d)" ( (comma_expression "pbVar18 = pbVar15 + 1, bVar7 != 0x5d" (assignment_expression "pbVar18 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) , (binary_expression "bVar7 != 0x5d" identifier != number_literal)) )) (compound_statement "{\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" { (if_statement "if (bVar7 == 0) goto LAB_000182c4;" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" goto statement_identifier ;)) (expression_statement "pbVar15 = pbVar18;" (assignment_expression "pbVar15 = pbVar18" identifier = identifier) ;) (expression_statement "bVar7 = *pbVar18;" (assignment_expression "bVar7 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) })) (expression_statement "iVar8 = (int)(char)pbVar15[1];" (assignment_expression "iVar8 = (int)(char)pbVar15[1]" identifier = (cast_expression "(int)(char)pbVar15[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar15[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar15[1]" identifier [ number_literal ])))) ;) (labeled_statement "joined_r0x00018418:\n        puVar17 = puVar22;" statement_identifier : (expression_statement "puVar17 = puVar22;" (assignment_expression "puVar17 = puVar22" identifier = identifier) ;)) (if_statement "if (iVar8 == 0) goto LAB_000182c4;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000182c4;" goto statement_identifier ;)) })) (expression_statement "pbVar10 = &DAT_c0000601;" (assignment_expression "pbVar10 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar8 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar8 - 0x21U & 0xff" identifier = (binary_expression "iVar8 - 0x21U & 0xff" (binary_expression "iVar8 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar11 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar11 = (byte *)(uint)(uVar3 < 0x20)" identifier = (cast_expression "(byte *)(uint)(uVar3 < 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar3 < 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < 0x20)" ( (binary_expression "uVar3 < 0x20" identifier < number_literal) ))))) ;) (if_statement "if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" if (parenthesized_expression "(pbVar11 != (byte *)0x0)" ( (binary_expression "pbVar11 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" while (parenthesized_expression "((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0)" ( (binary_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" ( (binary_expression "(0xc0000601U >> (uVar3 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar3 & 0x1f))" ( (binary_expression "0xc0000601U >> (uVar3 & 0x1f)" number_literal >> (parenthesized_expression "(uVar3 & 0x1f)" ( (binary_expression "uVar3 & 0x1f" identifier & number_literal) ))) )) << number_literal) ))) < number_literal) )) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" { (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (if_statement "if (iVar8 != 0x28) goto joined_r0x0001842c;" if (parenthesized_expression "(iVar8 != 0x28)" ( (binary_expression "iVar8 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x0001842c;" goto statement_identifier ;)) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar8 != 0x29) goto LAB_00018428;" if (parenthesized_expression "(iVar8 != 0x29)" ( (binary_expression "iVar8 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00018428;" goto statement_identifier ;)) (if_statement "if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" if (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" { (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (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_r0x0001842c:\n          pbVar18 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00018418;" goto statement_identifier ;) })) (if_statement "if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (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 = pbVar18 + (1 - (int)unaff_s6);\n        }" { (expression_statement "local_44 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar18 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar18 + (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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }" { (expression_statement "iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(((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 "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" ( (binary_expression "puVar22 + iVar8 + 0x1c" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar18 - (int)unaff_s6" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18)" * (cast_expression "(undefined4 *)(puVar22 + iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar8 + 0x18)" ( (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(puVar22 + iVar8 + 0x18);" (assignment_expression "*local_34 = (int)(puVar22 + iVar8 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(puVar22 + iVar8 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar22 + iVar8 + 0x18)" ( (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22f8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" if (parenthesized_expression "(pbVar18[-1] == 0x29)" ( (binary_expression "pbVar18[-1] == 0x29" (subscript_expression "pbVar18[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" { (if_statement "if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" if (parenthesized_expression "(param_1 - 0x21U < 0x20)" ( (binary_expression "param_1 - 0x21U < 0x20" (binary_expression "param_1 - 0x21U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" { (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" * (cast_expression "(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" ( (binary_expression "PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110" (binary_expression "PTR_DAT_0002f118 +\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 uVar3;" return identifier ;) })) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22d4" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" identifier = (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" ( (pointer_expression "*(code *)PTR___assert_fail_0002f218" * (cast_expression "(code *)PTR___assert_fail_0002f218" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" ( (binary_expression "PTR_DAT_0002f118 + -0x22e8" identifier + number_literal) , (binary_expression "PTR_DAT_0002f118 + -0x230c" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0002f118 + -0x1fa0" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (break_statement "break;" break ;) })) (if_statement "if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" if (parenthesized_expression "((iVar8 != 0x7c) || (unaff_s5 != 0))" ( (binary_expression "(iVar8 != 0x7c) || (unaff_s5 != 0)" (parenthesized_expression "(iVar8 != 0x7c)" ( (binary_expression "iVar8 != 0x7c" identifier != number_literal) )) || (parenthesized_expression "(unaff_s5 != 0)" ( (binary_expression "unaff_s5 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" { (labeled_statement "LAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];" statement_identifier : (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;)) (goto_statement "goto joined_r0x0001842c;" goto statement_identifier ;) })) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" identifier = identifier) ;) (if_statement "if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }" if (parenthesized_expression "(unaff_s1 == 0)" ( (binary_expression "unaff_s1 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }" { (expression_statement "pbVar15 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "pbVar15 = pbVar18 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar18 + (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)(pbVar15 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + 7)" ( (binary_expression "pbVar15 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = pbVar18 + -(int)unaff_s6;" (assignment_expression "pbVar11 = pbVar18 + -(int)unaff_s6" identifier = (binary_expression "pbVar18 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar14 = pbVar18 + 1;" (assignment_expression "pbVar14 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + 7)" ( (binary_expression "pbVar15 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar23 = puVar22 + iVar9;" (assignment_expression "puVar23 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "piVar5 = (int *)(puVar22 + iVar9 + 0x18);" (assignment_expression "piVar5 = (int *)(puVar22 + iVar9 + 0x18)" identifier = (cast_expression "(int *)(puVar22 + iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + iVar9 + 0x18)" ( (binary_expression "puVar22 + iVar9 + 0x18" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" ( (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" * (cast_expression "(code *)PTR_mempcpy_0002f2fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22 + iVar9 + 0x1c)" ( (binary_expression "puVar22 + iVar9 + 0x1c" (binary_expression "puVar22 + iVar9" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (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 ])))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar5;" (assignment_expression "*local_34 = (int)piVar5" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar14;" (assignment_expression "unaff_s6 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar18 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" identifier = identifier) ;) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" identifier = (binary_expression "puVar22 + iVar9" identifier + identifier)) ;) (expression_statement "local_34 = piVar5;" (assignment_expression "local_34 = piVar5" identifier = identifier) ;) (expression_statement "puVar17 = puVar23;" (assignment_expression "puVar17 = puVar23" identifier = identifier) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar1)" ( (binary_expression "local_2c == *(byte **)puVar1" identifier == (pointer_expression "*(byte **)puVar1" * (cast_expression "(byte **)puVar1" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return 0xffffffff;\n  }" { (return_statement "return 0xffffffff;" return number_literal ;) }))) (expression_statement "pcVar25 = FUN_000188a0;" (assignment_expression "pcVar25 = FUN_000188a0" identifier = identifier) ;) (expression_statement "pbVar15 = local_2c;" (assignment_expression "pbVar15 = local_2c" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_0002f2f0;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0002f2f0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002f2f0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002f2f0" * (cast_expression "(code *)PTR___stack_chk_fail_0002f2f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar19 + 0x1e840;" (assignment_expression "puVar2 = puVar19 + 0x1e840" identifier = (binary_expression "puVar19 + 0x1e840" identifier + number_literal)) ;) (expression_statement "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);" (assignment_expression "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c)" identifier = (pointer_expression "*(undefined4 **)(puVar19 + 0x16a6c)" * (cast_expression "(undefined4 **)(puVar19 + 0x16a6c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x16a6c)" ( (binary_expression "puVar19 + 0x16a6c" 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) = puVar2;" (assignment_expression "*(undefined **)(puVar22 + -0x160) = puVar2" (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) = pcVar25;" (assignment_expression "*(code **)(puVar22 + -4) = pcVar25" (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) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0xc) = pbVar18" (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 "*(int *)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x14)" * (cast_expression "(int *)(puVar22 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x14)" ( (binary_expression "puVar22 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar22 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar22 + -0x18)" * (cast_expression "(byte **)(puVar22 + -0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x18)" ( (binary_expression "puVar22 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar22 + -0x20) = puVar1;" (assignment_expression "*(undefined **)(puVar22 + -0x20) = puVar1" (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 "*(byte **)(puVar22 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x28)" * (cast_expression "(byte **)(puVar22 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x28)" ( (binary_expression "puVar22 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar22 + -0x144) = puVar4;" (assignment_expression "*(undefined4 **)(puVar22 + -0x144) = puVar4" (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) = pbVar15 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = pbVar15 + 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 "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)*pbVar15;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar15" identifier = (binary_expression "(byte *)(uint)*pbVar15" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = *puVar4" (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 "*puVar4" * identifier)) ;) (expression_statement "iVar8 = *(int *)(puVar19 + 0x16878);" (assignment_expression "iVar8 = *(int *)(puVar19 + 0x16878)" identifier = (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) ))))) ;) (expression_statement "pbVar18 = pbVar11;" (assignment_expression "pbVar18 = pbVar11" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar10;" (assignment_expression "pbVar24 = pbVar10" identifier = identifier) ;) (if_statement "if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\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    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }" { (expression_statement "uVar3 = *(uint *)(puVar22 + 0x10);" (assignment_expression "uVar3 = *(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 = uVar3 & 2;" (assignment_expression "unaff_s1 = uVar3 & 2" identifier = (binary_expression "uVar3 & 2" identifier & number_literal)) ;) (expression_statement "param_2 = (byte *)(uVar3 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar3 & 0x10)" identifier = (cast_expression "(byte *)(uVar3 & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )))) ;) (expression_statement "*(uint *)(puVar22 + -0x140) = uVar3 & 5;" (assignment_expression "*(uint *)(puVar22 + -0x140) = uVar3 & 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 "uVar3 & 5" identifier & number_literal)) ;) (expression_statement "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);" (assignment_expression "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868)" (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 *)(puVar19 + 0x16868)" * (cast_expression "(undefined4 *)(puVar19 + 0x16868)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16868)" ( (binary_expression "puVar19 + 0x16868" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;" (assignment_expression "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090" (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 "iVar8 + -0x2090" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;" (assignment_expression "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50" (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 *)(puVar19 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;" (assignment_expression "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c" (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 *)(puVar19 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar19 + 0x16878)" * (cast_expression "(int *)(puVar19 + 0x16878)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x16878)" ( (binary_expression "puVar19 + 0x16878" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "param_3 = pbVar15;" (assignment_expression "param_3 = pbVar15" identifier = identifier) ;) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" identifier = identifier) ;) (do_statement "do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);" do (compound_statement "{\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    }" { (expression_statement "pbVar15 = pbVar14;" (assignment_expression "pbVar15 = pbVar14" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(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 "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);" (assignment_expression "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" identifier = (binary_expression "(byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4 + 3)" ( (binary_expression "*piVar5 + (int)pbVar14 * 4 + 3" (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) })) (if_statement "if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" if (parenthesized_expression "(((uint)(pbVar15 + -0x21) & 0xff) < 0x3c)" ( (binary_expression "((uint)(pbVar15 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + -0x21)" ( (binary_expression "pbVar15 + -0x21" identifier + number_literal) ))) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" { (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" ( (binary_expression "*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -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)(pbVar15 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" ( (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15 + -0x21)" ( (binary_expression "pbVar15 + -0x21" identifier + number_literal) ))) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar15;" (assignment_expression "pbVar14 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar11) goto LAB_00018b74;" if (parenthesized_expression "(pbVar24 == pbVar11)" ( (binary_expression "pbVar24 == pbVar11" identifier == identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)(uint)*pbVar24;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar24" identifier = (binary_expression "(byte *)(uint)*pbVar24" (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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" ( (pointer_expression "**(code **)(puVar2 + -0x7ec4)" * (pointer_expression "*(code **)(puVar2 + -0x7ec4)" * (cast_expression "(code **)(puVar2 + -0x7ec4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7ec4)" ( (binary_expression "puVar2 + -0x7ec4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(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 "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);" (assignment_expression "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4)" identifier = (pointer_expression "*(byte **)(*piVar5 + (int)pbVar14 * 4)" * (cast_expression "(byte **)(*piVar5 + (int)pbVar14 * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4)" ( (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" identifier = identifier) ;) (if_statement "if (pbVar14 != pbVar15) goto LAB_00018b74;" if (parenthesized_expression "(pbVar14 != pbVar15)" ( (binary_expression "pbVar14 != pbVar15" identifier != identifier) )) (goto_statement "goto LAB_00018b74;" goto statement_identifier ;)) (expression_statement "param_3 = *(byte **)(puVar22 + -0x154);" (assignment_expression "param_3 = *(byte **)(puVar22 + -0x154)" identifier = (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) ))))) ;) (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 "pbVar14 = (byte *)(uint)*param_3;" (assignment_expression "pbVar14 = (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 "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar22 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = param_3 + 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 "param_3 + 1" identifier + number_literal)) ;) }) while (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)) )) ;) })) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar24 != pbVar11)" ( (binary_expression "pbVar24 != pbVar11" identifier != identifier) )) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" { (expression_statement "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);" (assignment_expression "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8)" identifier = (cast_expression "(byte *)(*(uint *)(puVar22 + 0x10) & 8)" ( (type_descriptor "byte *" type_identifier (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 (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 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      uVar3 = 1;\n    }" { (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" else (compound_statement "{\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" { (expression_statement "uVar3 = (uint)(*pbVar24 != 0x2f);" (assignment_expression "uVar3 = (uint)(*pbVar24 != 0x2f)" identifier = (call_expression "(uint)(*pbVar24 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar24 != 0x2f)" ( (binary_expression "*pbVar24 != 0x2f" (pointer_expression "*pbVar24" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar22 + -0x2c);" (assignment_expression "iVar9 = *(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 (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar9 == **(int **)(puVar22 + -0x144))" ( (binary_expression "iVar9 == **(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 uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar25 = *(code **)(puVar2 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(puVar2 + -0x7df0)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7df0)" * (cast_expression "(code **)(puVar2 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7df0)" ( (binary_expression "puVar2 + -0x7df0" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = gnu_fnmatch;" (assignment_expression "pcVar26 = gnu_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15df8);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15df8)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x15df8)" * (cast_expression "(code **)(pcVar25 + 0x15df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15df8)" ( (binary_expression "pcVar25 + 0x15df8" 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 "piVar5 = *(int **)(pcVar25 + 0x15e28);" (assignment_expression "piVar5 = *(int **)(pcVar25 + 0x15e28)" identifier = (pointer_expression "*(int **)(pcVar25 + 0x15e28)" * (cast_expression "(int **)(pcVar25 + 0x15e28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15e28)" ( (binary_expression "pcVar25 + 0x15e28" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(puVar22 + -0x180) = pbVar24;" (assignment_expression "*(byte **)(puVar22 + -0x180) = pbVar24" (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) = pbVar14;" (assignment_expression "*(byte **)(puVar22 + -0x198) = pbVar14" (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) = pcVar25 + 0x1dbfc;" (assignment_expression "*(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc" (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 "pcVar25 + 0x1dbfc" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar22 + -0x17c) = pcVar26;" (assignment_expression "*(code **)(puVar22 + -0x17c) = pcVar26" (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 "*(int *)(puVar22 + -0x184) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x184) = iVar8" (pointer_expression "*(int *)(puVar22 + -0x184)" * (cast_expression "(int *)(puVar22 + -0x184)" ( (type_descriptor "int *" primitive_type (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 "*(int *)(puVar22 + -0x18c) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x18c) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x18c)" * (cast_expression "(int *)(puVar22 + -0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x18c)" ( (binary_expression "puVar22 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -400) = param_3;" (assignment_expression "*(byte **)(puVar22 + -400) = param_3" (pointer_expression "*(byte **)(puVar22 + -400)" * (cast_expression "(byte **)(puVar22 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -400)" ( (binary_expression "puVar22 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar22 + -0x194) = pbVar11;" (assignment_expression "*(byte **)(puVar22 + -0x194) = pbVar11" (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 "*(byte **)(puVar22 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x1a0)" * (cast_expression "(byte **)(puVar22 + -0x1a0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + -0x1a0)" ( (binary_expression "puVar22 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar22 + -0x1b4) = iVar9;" (assignment_expression "*(int *)(puVar22 + -0x1b4) = iVar9" (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) = pbVar10;" (assignment_expression "*(byte **)(puVar22 + -0x1b8) = pbVar10" (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) = *piVar5;" (assignment_expression "*(int *)(puVar22 + -0x1a4) = *piVar5" (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 "*piVar5" * identifier)) ;) (expression_statement "iVar8 = (*pcVar20)();" (assignment_expression "iVar8 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" { (expression_statement "puVar13 = puVar22 + -0x1ac;" (assignment_expression "puVar13 = puVar22 + -0x1ac" identifier = (binary_expression "puVar22 + -0x1ac" identifier + number_literal)) ;) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar22 + -0x1b4;" (assignment_expression "puVar16 = puVar22 + -0x1b4" identifier = (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 "iVar8 = (*pcVar25)(0,puVar16,0,puVar13);" (assignment_expression "iVar8 = (*pcVar25)(0,puVar16,0,puVar13)" identifier = (call_expression "(*pcVar25)(0,puVar16,0,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(0,puVar16,0,puVar13)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar11 = (byte *)(iVar8 + 1);" (assignment_expression "pbVar11 = (byte *)(iVar8 + 1)" identifier = (cast_expression "(byte *)(iVar8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" if (parenthesized_expression "(pbVar11 != (byte *)0x0)" ( (binary_expression "pbVar11 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" { (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar9 + -0x7dd8)" * (pointer_expression "*(code **)(iVar9 + -0x7dd8)" * (cast_expression "(code **)(iVar9 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dd8)" ( (binary_expression "iVar9 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "uVar12 = 0x129;" (assignment_expression "uVar12 = 0x129" identifier = number_literal) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) goto LAB_00019800;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019800;" goto statement_identifier ;)) (expression_statement "pbVar15 = puVar22 + -0x1b8;" (assignment_expression "pbVar15 = puVar22 + -0x1b8" identifier = (binary_expression "puVar22 + -0x1b8" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" identifier = identifier) ;) (expression_statement "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" identifier = (cast_expression "(byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(0,pbVar15,0,puVar13)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "pbVar14 = param_3 + 1;" (assignment_expression "pbVar14 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\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        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }" { (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" ( (pointer_expression "**(code **)(iVar9 + -0x7dd8)" * (pointer_expression "*(code **)(iVar9 + -0x7dd8)" * (cast_expression "(code **)(iVar9 + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dd8)" ( (binary_expression "iVar9 + -0x7dd8" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" { (expression_statement "uVar12 = 0x12d;" (assignment_expression "uVar12 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_00019800;" goto statement_identifier ;) })) (expression_statement "pbVar24 = pbVar11 + (int)pbVar14;" (assignment_expression "pbVar24 = pbVar11 + (int)pbVar14" identifier = (binary_expression "pbVar11 + (int)pbVar14" identifier + (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" if (parenthesized_expression "((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000))" ( (binary_expression "(pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)" (parenthesized_expression "(pbVar11 <= pbVar24)" ( (binary_expression "pbVar11 <= pbVar24" identifier <= identifier) )) && (parenthesized_expression "(pbVar24 < (byte *)0x40000000)" ( (binary_expression "pbVar24 < (byte *)0x40000000" identifier < (cast_expression "(byte *)0x40000000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" { (if_statement "if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(pbVar24 < (byte *)0x7d0)" ( (binary_expression "pbVar24 < (byte *)0x7d0" identifier < (cast_expression "(byte *)0x7d0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)pbVar24 * 4 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)pbVar24 * 4 + 7U & 0xfffffff8)" ( (binary_expression "(int)pbVar24 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar24 * 4 + 7U" (binary_expression "(int)pbVar24 * 4" (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1c8;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1c8" identifier = (binary_expression "puVar22 + iVar6 + -0x1c8" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar24 = puVar17 + (int)pbVar11 * 4;" (assignment_expression "pbVar24 = puVar17 + (int)pbVar11 * 4" identifier = (binary_expression "puVar17 + (int)pbVar11 * 4" identifier + (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar16,pbVar11,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (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 "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" { (labeled_statement "LAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" statement_identifier : (do_statement "do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" do (compound_statement "{\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              }" { (expression_statement "uVar12 = 0x147;" (assignment_expression "uVar12 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" statement_identifier : (expression_statement "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" (call_expression "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" (parenthesized_expression "(**(code **)(iVar9 + -0x7ec8))" ( (pointer_expression "**(code **)(iVar9 + -0x7ec8)" * (pointer_expression "*(code **)(iVar9 + -0x7ec8)" * (cast_expression "(code **)(iVar9 + -0x7ec8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7ec8)" ( (binary_expression "iVar9 + -0x7ec8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" ( (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x229c" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x22ac" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x1f88" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" * (cast_expression "(int *)(iVar9 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x7fc8)" ( (binary_expression "iVar9 + -0x7fc8" identifier + number_literal) )))) + number_literal) ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" ( (pointer_expression "**(code **)(iVar9 + -0x7dac)" * (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18" (pointer_expression "*(byte **)(puVar22 + iVar6 + -0x1d0)" * (cast_expression "(byte **)(puVar22 + iVar6 + -0x1d0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar22 + iVar6 + -0x1d0)" ( (binary_expression "puVar22 + iVar6 + -0x1d0" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" identifier = identifier) ;) (expression_statement "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "pbVar24 + (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1e0" identifier = (binary_expression "puVar22 + iVar6 + -0x1e0" (binary_expression "puVar22 + iVar6" identifier + identifier) + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7e28))();" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e28))()" identifier = (call_expression "(**(code **)(iVar9 + -0x7e28))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e28))" ( (pointer_expression "**(code **)(iVar9 + -0x7e28)" * (pointer_expression "*(code **)(iVar9 + -0x7e28)" * (cast_expression "(code **)(iVar9 + -0x7e28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e28)" ( (binary_expression "iVar9 + -0x7e28" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" { (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar22 + -0x1bc) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x1bc) = iVar8" (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 "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);" (assignment_expression "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4)" identifier = (cast_expression "(byte *)(iVar8 + (int)pbVar11 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + (int)pbVar11 * 4)" ( (binary_expression "iVar8 + (int)pbVar11 * 4" identifier + (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13);" (call_expression "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(iVar8,puVar16,pbVar11,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" identifier = (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (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 "(puVar13)" ( identifier )))) ;) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(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 (iVar8 == 0) goto LAB_00019820;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019820;" goto statement_identifier ;)) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" identifier = (pointer_expression "*(code **)(iVar9 + -0x7dac)" * (cast_expression "(code **)(iVar9 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7dac)" ( (binary_expression "iVar9 + -0x7dac" 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 "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (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 "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" identifier = identifier) ;) (expression_statement "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( (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) )))) , identifier , (binary_expression "pbVar24 + (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))" ( (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" * (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" * (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" ( (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dc8" (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 "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar9 + -0x7e60))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar9 + -0x7e60))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e60))" ( (pointer_expression "**(code **)(iVar9 + -0x7e60)" * (pointer_expression "*(code **)(iVar9 + -0x7e60)" * (cast_expression "(code **)(iVar9 + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e60)" ( (binary_expression "iVar9 + -0x7e60" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (goto_statement "goto LAB_00019590;" goto statement_identifier ;) })) })) })) (expression_statement "pbVar10 = *(byte **)(puVar22 + -0x1b8);" (assignment_expression "pbVar10 = *(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 "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10)" identifier = (call_expression "(**(code **)(iVar9 + -0x7e44))(pbVar10)" (parenthesized_expression "(**(code **)(iVar9 + -0x7e44))" ( (pointer_expression "**(code **)(iVar9 + -0x7e44)" * (pointer_expression "*(code **)(iVar9 + -0x7e44)" * (cast_expression "(code **)(iVar9 + -0x7e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + -0x7e44)" ( (binary_expression "iVar9 + -0x7e44" identifier + number_literal) ))))) )) (argument_list "(pbVar10)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (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 "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar22 + -0x1b4)" * (cast_expression "(undefined4 *)(puVar22 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + -0x1b4)" ( (binary_expression "puVar22 + -0x1b4" identifier + number_literal) )))) , identifier , (binary_expression "pbVar10 + iVar8" identifier + identifier) , (binary_expression "(uint)((int)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar18 << 0x1d)" ( (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(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 "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" identifier = (binary_expression "puVar22 + -0x1e0" identifier + number_literal)) ;) (labeled_statement "LAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar22 + -0x1a4);" (assignment_expression "iVar9 = *(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 "pcVar25 = *(code **)(iVar8 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(iVar8 + -0x7df0)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7df0)" * (cast_expression "(code **)(iVar8 + -0x7df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7df0)" ( (binary_expression "iVar8 + -0x7df0" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == *piVar5) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar9 == *piVar5)" ( (binary_expression "iVar9 == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "pcVar26 = rpl_freopen;" (assignment_expression "pcVar26 = rpl_freopen" identifier = identifier) ;) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15a74);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15a74)" identifier = (pointer_expression "*(code **)(pcVar25 + 0x15a74)" * (cast_expression "(code **)(pcVar25 + 0x15a74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar25 + 0x15a74)" ( (binary_expression "pcVar25 + 0x15a74" identifier + number_literal) ))))) ;) (expression_statement "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;" (assignment_expression "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0" (pointer_expression "*(code **)(puVar17 + -0x20)" * (cast_expression "(code **)(puVar17 + -0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) = (binary_expression "pcVar25 + 0x1d8b0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar11;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar11" (pointer_expression "*(byte **)(puVar17 + -0xc)" * (cast_expression "(byte **)(puVar17 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0xc)" ( (binary_expression "puVar17 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar17 + -0x14) = piVar5;" (assignment_expression "*(int **)(puVar17 + -0x14) = piVar5" (pointer_expression "*(int **)(puVar17 + -0x14)" * (cast_expression "(int **)(puVar17 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x14)" ( (binary_expression "puVar17 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar17 + -0x18) = uVar3;" (assignment_expression "*(uint *)(puVar17 + -0x18) = uVar3" (pointer_expression "*(uint *)(puVar17 + -0x18)" * (cast_expression "(uint *)(puVar17 + -0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x18)" ( (binary_expression "puVar17 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar17 + -4) = pcVar26;" (assignment_expression "*(code **)(puVar17 + -4) = pcVar26" (pointer_expression "*(code **)(puVar17 + -4)" * (cast_expression "(code **)(puVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -4)" ( (binary_expression "puVar17 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar17 + -8) = param_3;" (assignment_expression "*(byte **)(puVar17 + -8) = param_3" (pointer_expression "*(byte **)(puVar17 + -8)" * (cast_expression "(byte **)(puVar17 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -8)" ( (binary_expression "puVar17 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar18;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar18" (pointer_expression "*(byte **)(puVar17 + -0x10)" * (cast_expression "(byte **)(puVar17 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + -0x10)" ( (binary_expression "puVar17 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = (*pcVar20)();" (assignment_expression "uVar3 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" if (parenthesized_expression "((uVar3 != 0) && (iVar9 != 0))" ( (binary_expression "(uVar3 != 0) && (iVar9 != 0)" (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" { (expression_statement "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e68)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e68" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7da8)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7da8" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar8,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();" (assignment_expression "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" identifier = (cast_expression "(int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e60)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e60" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" if (parenthesized_expression "(*piVar5 == 9)" ( (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" * identifier) == number_literal) )) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" { (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" identifier = (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e4c)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e4c" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" ( (binary_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24" (pointer_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" * (cast_expression "(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7fc8)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7fc8" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" identifier = (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" if (parenthesized_expression "(iVar8 != iVar6)" ( (binary_expression "iVar8 != iVar6" identifier != identifier) )) (compound_statement "{\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" { (expression_statement "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);" (assignment_expression "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" identifier = (call_expression "(**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" (parenthesized_expression "(**(code **)(iVar21 + -0x7da8))" ( (pointer_expression "**(code **)(iVar21 + -0x7da8)" * (pointer_expression "*(code **)(iVar21 + -0x7da8)" * (cast_expression "(code **)(iVar21 + -0x7da8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7da8)" ( (binary_expression "iVar21 + -0x7da8" identifier + number_literal) ))))) )) (argument_list "(iVar6,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" { (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar6)" ( identifier ))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" ( (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" * (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" ( (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" identifier = (pointer_expression "*(int *)(puVar17 + -0x20)" * (cast_expression "(int *)(puVar17 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + -0x20)" ( (binary_expression "puVar17 + -0x20" identifier + number_literal) ))))) ;) })) (expression_statement "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);" (assignment_expression "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" identifier = (call_expression "(**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e3c))" ( (pointer_expression "**(code **)(iVar21 + -0x7e3c)" * (pointer_expression "*(code **)(iVar21 + -0x7e3c)" * (cast_expression "(code **)(iVar21 + -0x7e3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x7e3c)" ( (binary_expression "iVar21 + -0x7e3c" identifier + number_literal) ))))) )) (argument_list "(iVar9,pbVar10,uVar3)" ( identifier , identifier , identifier )))) ;) (return_statement "return uVar3;" return identifier ;) })) })) })) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (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 = 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) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (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 ])))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (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 { (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 != LIT) )) (compound_statement { (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)) ;)) (goto_statement goto statement_identifier ;) })) (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 = (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 { (if_statement if (parenthesized_expression ( (binary_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 *)) ) (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 ;) })) (expression_statement (assignment_expression IDENT = (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 = (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 ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;)) (goto_statement goto statement_identifier ;) })) (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) ;) }) 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 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 *)) ) (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 *)) ) (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 *)) ) (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 = (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 = 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 = 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 = 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 *)) ) (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) )))) = 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 { (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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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)) )) (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) )) (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 IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 = (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 = (binary_expression (binary_expression IDENT + 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 ( )))) ;) (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 = (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 = (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)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_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 ( ))))) ;) (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) ;) (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 = (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 = (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)) ;) (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 = (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 = (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) )))) = (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 *)) ) (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != 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 (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 = (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 , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression (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) )))) + LIT) )))) + LIT) , 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 != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (return_statement return 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 (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) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) })) })) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" (type_identifier "uint") (function_declarator "FUN_000181b0(int param_1,byte *param_2,byte *param_3,byte *param_4)" (identifier "FUN_000181b0") (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  undefined *puVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte bVar7;\n  undefined4 *puVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar8;\n  int iVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  undefined1 *puVar13;\n  uint unaff_s1;\n  byte *pbVar14;\n  byte *pbVar15;\n  undefined *unaff_s3;\n  int unaff_s5;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  byte *unaff_s6;\n  byte *pbVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int iVar21;\n  undefined1 *puVar22;\n  undefined1 *puVar23;\n  byte *pbVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined1 auStack_68 [24];\n  byte *local_44;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0002f30c;\n  puVar22 = auStack_68;\n  pbVar18 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;\n  pbVar10 = param_2;\n  pbVar11 = param_3;\n  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);\n  puVar19 = PTR___progname_0002f108;\n  iVar8 = (int)(char)param_2[1];\n  if (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }\nLAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }\n  pcVar25 = FUN_000188a0;\n  pbVar15 = local_2c;\n  puVar19 = PTR___stack_chk_fail_0002f2f0;\n  (*(code *)PTR___stack_chk_fail_0002f2f0)();\n  puVar2 = puVar19 + 0x1e840;\n  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);\n  *(undefined1 **)(puVar22 + -8) = auStack_68;\n  *(undefined **)(puVar22 + -0x1c) = unaff_s3;\n  *(undefined **)(puVar22 + -0x160) = puVar2;\n  *(code **)(puVar22 + -4) = pcVar25;\n  *(byte **)(puVar22 + -0xc) = pbVar18;\n  *(byte **)(puVar22 + -0x10) = unaff_s6;\n  *(int *)(puVar22 + -0x14) = unaff_s5;\n  *(byte **)(puVar22 + -0x18) = param_3;\n  *(undefined **)(puVar22 + -0x20) = puVar1;\n  *(uint *)(puVar22 + -0x24) = unaff_s1;\n  *(byte **)(puVar22 + -0x28) = param_2;\n  *(undefined4 **)(puVar22 + -0x144) = puVar4;\n  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;\n  pbVar14 = (byte *)(uint)*pbVar15;\n  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;\n  iVar8 = *(int *)(puVar19 + 0x16878);\n  pbVar18 = pbVar11;\n  pbVar24 = pbVar10;\n  if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }\n  uVar3 = 0;\n  if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }\nLAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);\n  if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }\n  pcVar25 = *(code **)(puVar2 + -0x7df0);\n  pcVar26 = gnu_fnmatch;\n  (*pcVar25)();\n  puVar17 = puVar22 + -0x1e0;\n  pcVar20 = *(code **)(pcVar25 + 0x15df8);\n  *(uint *)(puVar22 + -0x19c) = unaff_s1;\n  piVar5 = *(int **)(pcVar25 + 0x15e28);\n  *(byte **)(puVar22 + -0x180) = pbVar24;\n  *(byte **)(puVar22 + -0x198) = pbVar14;\n  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;\n  *(code **)(puVar22 + -0x17c) = pcVar26;\n  *(int *)(puVar22 + -0x184) = iVar8;\n  *(byte **)(puVar22 + -0x188) = unaff_s6;\n  *(int *)(puVar22 + -0x18c) = unaff_s5;\n  *(byte **)(puVar22 + -400) = param_3;\n  *(byte **)(puVar22 + -0x194) = pbVar11;\n  *(byte **)(puVar22 + -0x1a0) = param_2;\n  *(int *)(puVar22 + -0x1b4) = iVar9;\n  *(byte **)(puVar22 + -0x1b8) = pbVar10;\n  *(int *)(puVar22 + -0x1a4) = *piVar5;\n  iVar8 = (*pcVar20)();\n  iVar9 = *(int *)(puVar22 + -0x1c8);\n  if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }\n  pbVar10 = *(byte **)(puVar22 + -0x1b8);\n  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);\n  *(byte **)(puVar22 + -0x1d0) = pbVar18;\n  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n  iVar8 = *(int *)(puVar22 + -0x1c8);\n  puVar17 = puVar22 + -0x1e0;\nLAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);\n  pcVar25 = *(code **)(iVar8 + -0x7df0);\n  if (iVar9 == *piVar5) {\n    return uVar3;\n  }\n  pcVar26 = rpl_freopen;\n  (*pcVar25)();\n  pcVar20 = *(code **)(pcVar25 + 0x15a74);\n  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;\n  *(byte **)(puVar17 + -0xc) = pbVar11;\n  *(int **)(puVar17 + -0x14) = piVar5;\n  *(uint *)(puVar17 + -0x18) = uVar3;\n  *(code **)(puVar17 + -4) = pcVar26;\n  *(byte **)(puVar17 + -8) = param_3;\n  *(byte **)(puVar17 + -0x10) = pbVar18;\n  uVar3 = (*pcVar20)();\n  if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }\n  return uVar3;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined *unaff_s3;" (type_identifier "undefined") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int unaff_s5;" (primitive_type "int") (identifier "unaff_s5") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (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 "puVar1 = PTR___stack_chk_guard_0002f30c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0002f30c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0002f30c")) (; ";")) (expression_statement "puVar22 = auStack_68;" (assignment_expression "puVar22 = auStack_68" (identifier "puVar22") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "pbVar18 = param_2 + 1;" (assignment_expression "pbVar18 = param_2 + 1" (identifier "pbVar18") (= "=") (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_0002f30c;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_0002f30c" (identifier "local_2c") (= "=") (pointer_expression "*(byte **)PTR___stack_chk_guard_0002f30c" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_0002f30c" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_0002f30c")))) (; ";")) (expression_statement "pbVar10 = param_2;" (assignment_expression "pbVar10 = param_2" (identifier "pbVar10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar11 = param_3;" (assignment_expression "pbVar11 = param_3" (identifier "pbVar11") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);" (assignment_expression "local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" (identifier "local_44") (= "=") (cast_expression "(byte *)(*(code *)PTR_strlen_0002f29c)(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_0002f29c)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0002f29c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0002f29c" (* "*") (cast_expression "(code *)PTR_strlen_0002f29c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0002f29c"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar19 = PTR___progname_0002f108;" (assignment_expression "puVar19 = PTR___progname_0002f108" (identifier "puVar19") (= "=") (identifier "PTR___progname_0002f108")) (; ";")) (expression_statement "iVar8 = (int)(char)param_2[1];" (assignment_expression "iVar8 = (int)(char)param_2[1]" (identifier "iVar8") (= "=") (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 (iVar8 != 0) {\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = 0;\n    unaff_s1 = (uint)(param_1 - 0x3fU < 2);\n    puVar2 = PTR_DAT_0002f118 + -0x231c;\n    local_34 = &local_30;\n    puVar17 = auStack_68;\n    unaff_s6 = pbVar18;\n    do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (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 "puVar2 = PTR_DAT_0002f118 + -0x231c;" (assignment_expression "puVar2 = PTR_DAT_0002f118 + -0x231c" (identifier "puVar2") (= "=") (binary_expression "PTR_DAT_0002f118 + -0x231c" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x231c"))) (; ";")) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" (identifier "local_34") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "puVar17 = auStack_68;" (assignment_expression "puVar17 = auStack_68" (identifier "puVar17") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "unaff_s6 = pbVar18;" (assignment_expression "unaff_s6 = pbVar18" (identifier "unaff_s6") (= "=") (identifier "pbVar18")) (; ";")) (do_statement "do {\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    } while (iVar8 != 0);" (do "do") (compound_statement "{\n      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }\n      pbVar10 = &DAT_c0000601;\n      uVar3 = iVar8 - 0x21U & 0xff;\n      pbVar11 = (byte *)(uint)(uVar3 < 0x20);\n      if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }\n      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }\n      pbVar15 = local_44;\n      if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }\n      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;\n      pbVar11 = pbVar18 + -(int)unaff_s6;\n      pbVar14 = pbVar18 + 1;\n      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n      puVar23 = puVar22 + iVar9;\n      piVar5 = (int *)(puVar22 + iVar9 + 0x18);\n      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);\n      iVar8 = (int)(char)pbVar18[1];\n      *puVar17 = 0;\n      *piVar5 = 0;\n      *local_34 = (int)piVar5;\n      pbVar10 = unaff_s6;\n      unaff_s6 = pbVar14;\n      pbVar18 = pbVar14;\n      puVar22 = puVar22 + iVar9;\n      local_34 = piVar5;\n      puVar17 = puVar23;\n    }" ({ "{") (while_statement "while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" (while "while") (parenthesized_expression "(puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b)" (( "(") (comma_expression "puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "puVar22 = puVar17" (identifier "puVar22") (= "=") (identifier "puVar17")) (, ",") (comma_expression "unaff_s3 = puVar19, iVar8 == 0x5b" (assignment_expression "unaff_s3 = puVar19" (identifier "unaff_s3") (= "=") (identifier "puVar19")) (, ",") (binary_expression "iVar8 == 0x5b" (identifier "iVar8") (== "==") (number_literal "0x5b")))) () ")")) (compound_statement "{\n        if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }\n        bVar7 = pbVar18[1];\n        pbVar15 = pbVar18 + 1;\n        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }\n        if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }\n        pbVar10 = (byte *)0x5d;\n        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }\n        iVar8 = (int)(char)pbVar15[1];\njoined_r0x00018418:\n        puVar17 = puVar22;\n        if (iVar8 == 0) goto LAB_000182c4;\n      }" ({ "{") (if_statement "if (*(int *)(puVar19 + -0xb20) == 0) {\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar19 + -0xb20) == 0)" (( "(") (binary_expression "*(int *)(puVar19 + -0xb20) == 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" (* "*") (cast_expression "(int *)(puVar19 + -0xb20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0xb20)" (( "(") (binary_expression "puVar19 + -0xb20" (identifier "puVar19") (+ "+") (number_literal "-0xb20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);\n          uVar12 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar12 = 1;\n          }\n          *(undefined4 *)(puVar19 + -0xb20) = uVar12;\n        }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);" (assignment_expression "iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_getenv_0002f2c0)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0002f2c0)" (( "(") (pointer_expression "*(code *)PTR_getenv_0002f2c0" (* "*") (cast_expression "(code *)PTR_getenv_0002f2c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_0002f2c0"))) () ")")) (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar8 != 0) {\n            uVar12 = 1;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar12 = 1;\n          }" ({ "{") (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" (identifier "uVar12") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar19 + -0xb20) = uVar12;" (assignment_expression "*(undefined4 *)(puVar19 + -0xb20) = uVar12" (pointer_expression "*(undefined4 *)(puVar19 + -0xb20)" (* "*") (cast_expression "(undefined4 *)(puVar19 + -0xb20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0xb20)" (( "(") (binary_expression "puVar19 + -0xb20" (identifier "puVar19") (+ "+") (number_literal "-0xb20")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (} "}"))) (expression_statement "bVar7 = pbVar18[1];" (assignment_expression "bVar7 = pbVar18[1]" (identifier "bVar7") (= "=") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar15 = pbVar18 + 1;" (assignment_expression "pbVar15 = pbVar18 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" (if "if") (parenthesized_expression "((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))))" (( "(") (binary_expression "(bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" (parenthesized_expression "(bVar7 == 0x21)" (( "(") (binary_expression "bVar7 == 0x21" (identifier "bVar7") (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))" (( "(") (parenthesized_expression "(*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e))" (( "(") (binary_expression "*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)" (binary_expression "*(int *)(puVar19 + -0xb20) < 0" (pointer_expression "*(int *)(puVar19 + -0xb20)" (* "*") (cast_expression "(int *)(puVar19 + -0xb20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0xb20)" (( "(") (binary_expression "puVar19 + -0xb20" (identifier "puVar19") (+ "+") (number_literal "-0xb20")) () ")")))) (< "<") (number_literal "0")) (&& "&&") (parenthesized_expression "(bVar7 == 0x5e)" (( "(") (binary_expression "bVar7 == 0x5e" (identifier "bVar7") (== "==") (number_literal "0x5e")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          bVar7 = pbVar18[2];\n          pbVar15 = pbVar18 + 2;\n        }" ({ "{") (expression_statement "bVar7 = pbVar18[2];" (assignment_expression "bVar7 = pbVar18[2]" (identifier "bVar7") (= "=") (subscript_expression "pbVar18[2]" (identifier "pbVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pbVar15 = pbVar18 + 2;" (assignment_expression "pbVar15 = pbVar18 + 2" (identifier "pbVar15") (= "=") (binary_expression "pbVar18 + 2" (identifier "pbVar18") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (bVar7 == 0x5d) {\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" (if "if") (parenthesized_expression "(bVar7 == 0x5d)" (( "(") (binary_expression "bVar7 == 0x5d" (identifier "bVar7") (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          bVar7 = pbVar15[1];\n          pbVar15 = pbVar15 + 1;\n        }" ({ "{") (expression_statement "bVar7 = pbVar15[1];" (assignment_expression "bVar7 = pbVar15[1]" (identifier "bVar7") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar10 = (byte *)0x5d;" (assignment_expression "pbVar10 = (byte *)0x5d" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x5d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5d"))) (; ";")) (while_statement "while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" (while "while") (parenthesized_expression "(pbVar18 = pbVar15 + 1, bVar7 != 0x5d)" (( "(") (comma_expression "pbVar18 = pbVar15 + 1, bVar7 != 0x5d" (assignment_expression "pbVar18 = pbVar15 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (, ",") (binary_expression "bVar7 != 0x5d" (identifier "bVar7") (!= "!=") (number_literal "0x5d"))) () ")")) (compound_statement "{\n          if (bVar7 == 0) goto LAB_000182c4;\n          pbVar15 = pbVar18;\n          bVar7 = *pbVar18;\n        }" ({ "{") (if_statement "if (bVar7 == 0) goto LAB_000182c4;" (if "if") (parenthesized_expression "(bVar7 == 0)" (( "(") (binary_expression "bVar7 == 0" (identifier "bVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000182c4;" (goto "goto") (statement_identifier "LAB_000182c4") (; ";"))) (expression_statement "pbVar15 = pbVar18;" (assignment_expression "pbVar15 = pbVar18" (identifier "pbVar15") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "bVar7 = *pbVar18;" (assignment_expression "bVar7 = *pbVar18" (identifier "bVar7") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (} "}"))) (expression_statement "iVar8 = (int)(char)pbVar15[1];" (assignment_expression "iVar8 = (int)(char)pbVar15[1]" (identifier "iVar8") (= "=") (cast_expression "(int)(char)pbVar15[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar15[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (labeled_statement "joined_r0x00018418:\n        puVar17 = puVar22;" (statement_identifier "joined_r0x00018418") (: ":") (expression_statement "puVar17 = puVar22;" (assignment_expression "puVar17 = puVar22" (identifier "puVar17") (= "=") (identifier "puVar22")) (; ";"))) (if_statement "if (iVar8 == 0) goto LAB_000182c4;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000182c4;" (goto "goto") (statement_identifier "LAB_000182c4") (; ";"))) (} "}"))) (expression_statement "pbVar10 = &DAT_c0000601;" (assignment_expression "pbVar10 = &DAT_c0000601" (identifier "pbVar10") (= "=") (pointer_expression "&DAT_c0000601" (& "&") (identifier "DAT_c0000601"))) (; ";")) (expression_statement "uVar3 = iVar8 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar8 - 0x21U & 0xff" (identifier "uVar3") (= "=") (binary_expression "iVar8 - 0x21U & 0xff" (binary_expression "iVar8 - 0x21U" (identifier "iVar8") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "pbVar11 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar11 = (byte *)(uint)(uVar3 < 0x20)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(uint)(uVar3 < 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(uVar3 < 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < 0x20)" (( "(") (binary_expression "uVar3 < 0x20" (identifier "uVar3") (< "<") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (pbVar11 != (byte *)0x0) {\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" (if "if") (parenthesized_expression "(pbVar11 != (byte *)0x0)" (( "(") (binary_expression "pbVar11 != (byte *)0x0" (identifier "pbVar11") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }\n        if (iVar8 != 0x29) goto LAB_00018428;\n        if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }\n        if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (1 - (int)unaff_s6);\n        }\n        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }\n        break;\n      }" ({ "{") (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" (while "while") (parenthesized_expression "((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0)" (( "(") (binary_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0" (cast_expression "(int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f)" (( "(") (binary_expression "(0xc0000601U >> (uVar3 & 0x1f)) << 0x1f" (parenthesized_expression "(0xc0000601U >> (uVar3 & 0x1f))" (( "(") (binary_expression "0xc0000601U >> (uVar3 & 0x1f)" (number_literal "0xc0000601U") (>> ">>") (parenthesized_expression "(uVar3 & 0x1f)" (( "(") (binary_expression "uVar3 & 0x1f" (identifier "uVar3") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "0x1f")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          if (iVar8 != 0x28) goto joined_r0x0001842c;\n          pbVar11 = (byte *)0x1;\n          unaff_s5 = unaff_s5 + 1;\n          pbVar18 = pbVar18 + 1;\n          uVar3 = 7;\n        }" ({ "{") (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (int)(char)pbVar18[1]" (identifier "iVar8") (= "=") (cast_expression "(int)(char)pbVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar18[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (iVar8 != 0x28) goto joined_r0x0001842c;" (if "if") (parenthesized_expression "(iVar8 != 0x28)" (( "(") (binary_expression "iVar8 != 0x28" (identifier "iVar8") (!= "!=") (number_literal "0x28")) () ")")) (goto_statement "goto joined_r0x0001842c;" (goto "goto") (statement_identifier "joined_r0x0001842c") (; ";"))) (expression_statement "pbVar11 = (byte *)0x1;" (assignment_expression "pbVar11 = (byte *)0x1" (identifier "pbVar11") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "unaff_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 "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" (identifier "uVar3") (= "=") (number_literal "7")) (; ";")) (} "}"))) (if_statement "if (iVar8 != 0x29) goto LAB_00018428;" (if "if") (parenthesized_expression "(iVar8 != 0x29)" (( "(") (binary_expression "iVar8 != 0x29" (identifier "iVar8") (!= "!=") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_00018428;" (goto "goto") (statement_identifier "LAB_00018428") (; ";"))) (if_statement "if (unaff_s5 != 0) {\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" (if "if") (parenthesized_expression "(unaff_s5 != 0)" (( "(") (binary_expression "unaff_s5 != 0" (identifier "unaff_s5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = (int)(char)pbVar18[1];\n          unaff_s5 = unaff_s5 + -1;\njoined_r0x0001842c:\n          pbVar18 = pbVar18 + 1;\n          goto joined_r0x00018418;\n        }" ({ "{") (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (int)(char)pbVar18[1]" (identifier "iVar8") (= "=") (cast_expression "(int)(char)pbVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar18[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (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_r0x0001842c:\n          pbVar18 = pbVar18 + 1;" (statement_identifier "joined_r0x0001842c") (: ":") (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";"))) (goto_statement "goto joined_r0x00018418;" (goto "goto") (statement_identifier "joined_r0x00018418") (; ";")) (} "}"))) (if_statement "if (1 < param_1 - 0x3fU) {\n          local_44 = pbVar18 + (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 = pbVar18 + (1 - (int)unaff_s6);\n        }" ({ "{") (expression_statement "local_44 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "local_44 = pbVar18 + (1 - (int)unaff_s6)" (identifier "local_44") (= "=") (binary_expression "pbVar18 + (1 - (int)unaff_s6)" (identifier "pbVar18") (+ "+") (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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\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          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n          puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);\n          *puVar17 = 0;\n          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;\n          *local_34 = (int)(puVar22 + iVar8 + 0x18);\n          if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }\n          uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);\n          return uVar3;\n        }" ({ "{") (expression_statement "iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar8") (= "=") (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 "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)\n                    (*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_0002f2fc)\n                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" (* "*") (cast_expression "(code *)PTR_mempcpy_0002f2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_0002f2fc"))) () ")")) (argument_list "(puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6)" (( "(") (binary_expression "puVar22 + iVar8 + 0x1c" (binary_expression "puVar22 + iVar8" (identifier "puVar22") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "unaff_s6") (, ",") (binary_expression "(int)pbVar18 - (int)unaff_s6" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")"))))) (; ";")) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18) = 0" (pointer_expression "*(undefined4 *)(puVar22 + iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar22 + iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + iVar8 + 0x18)" (( "(") (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" (identifier "puVar22") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)(puVar22 + iVar8 + 0x18);" (assignment_expression "*local_34 = (int)(puVar22 + iVar8 + 0x18)" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)(puVar22 + iVar8 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar22 + iVar8 + 0x18)" (( "(") (binary_expression "puVar22 + iVar8 + 0x18" (binary_expression "puVar22 + iVar8" (identifier "puVar22") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (local_30 == 0) {\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" ({ "{") (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0002f218" (* "*") (cast_expression "(code *)PTR___assert_fail_0002f218" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0002f218"))) () ")")) (argument_list "(PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,\n                               PTR_DAT_0002f118 + -0x1fa0)" (( "(") (binary_expression "PTR_DAT_0002f118 + -0x22f8" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x22f8")) (, ",") (binary_expression "PTR_DAT_0002f118 + -0x230c" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x230c")) (, ",") (number_literal "0x454") (, ",") (binary_expression "PTR_DAT_0002f118 + -0x1fa0" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x1fa0")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (if_statement "if (pbVar18[-1] == 0x29) {\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" (if "if") (parenthesized_expression "(pbVar18[-1] == 0x29)" (( "(") (binary_expression "pbVar18[-1] == 0x29" (subscript_expression "pbVar18[-1]" (identifier "pbVar18") ([ "[") (number_literal "-1") (] "]")) (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n            if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }\n            uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);\n            return uVar3;\n          }" ({ "{") (if_statement "if (param_1 - 0x21U < 0x20) {\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" (if "if") (parenthesized_expression "(param_1 - 0x21U < 0x20)" (( "(") (binary_expression "param_1 - 0x21U < 0x20" (binary_expression "param_1 - 0x21U" (identifier "param_1") (- "-") (number_literal "0x21U")) (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();\n              return uVar3;\n            }" ({ "{") (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" (identifier "uVar3") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (* "*") (cast_expression "(int *)(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110)" (( "(") (binary_expression "PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4 + -0x2110" (binary_expression "PTR_DAT_0002f118 +\n                                                  (param_1 - 0x21U) * 4" (identifier "PTR_DAT_0002f118") (+ "+") (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 "-0x2110")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0002f218" (* "*") (cast_expression "(code *)PTR___assert_fail_0002f218" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0002f218"))) () ")")) (argument_list "(PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,\n                               PTR_DAT_0002f118 + -0x1fa0)" (( "(") (binary_expression "PTR_DAT_0002f118 + -0x22d4" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x22d4")) (, ",") (binary_expression "PTR_DAT_0002f118 + -0x230c" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x230c")) (, ",") (number_literal "0x4ad") (, ",") (binary_expression "PTR_DAT_0002f118 + -0x1fa0" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x1fa0")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_0002f218)\n                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0002f218)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0002f218" (* "*") (cast_expression "(code *)PTR___assert_fail_0002f218" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0002f218"))) () ")")) (argument_list "(PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,\n                             PTR_DAT_0002f118 + -0x1fa0)" (( "(") (binary_expression "PTR_DAT_0002f118 + -0x22e8" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x22e8")) (, ",") (binary_expression "PTR_DAT_0002f118 + -0x230c" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x230c")) (, ",") (number_literal "0x455") (, ",") (binary_expression "PTR_DAT_0002f118 + -0x1fa0" (identifier "PTR_DAT_0002f118") (+ "+") (number_literal "-0x1fa0")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" (if "if") (parenthesized_expression "((iVar8 != 0x7c) || (unaff_s5 != 0))" (( "(") (binary_expression "(iVar8 != 0x7c) || (unaff_s5 != 0)" (parenthesized_expression "(iVar8 != 0x7c)" (( "(") (binary_expression "iVar8 != 0x7c" (identifier "iVar8") (!= "!=") (number_literal "0x7c")) () ")")) (|| "||") (parenthesized_expression "(unaff_s5 != 0)" (( "(") (binary_expression "unaff_s5 != 0" (identifier "unaff_s5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];\n        goto joined_r0x0001842c;\n      }" ({ "{") (labeled_statement "LAB_00018428:\n        iVar8 = (int)(char)pbVar18[1];" (statement_identifier "LAB_00018428") (: ":") (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (int)(char)pbVar18[1]" (identifier "iVar8") (= "=") (cast_expression "(int)(char)pbVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar18[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";"))) (goto_statement "goto joined_r0x0001842c;" (goto "goto") (statement_identifier "joined_r0x0001842c") (; ";")) (} "}"))) (expression_statement "pbVar15 = local_44;" (assignment_expression "pbVar15 = local_44" (identifier "pbVar15") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (unaff_s1 == 0) {\n        pbVar15 = pbVar18 + (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        pbVar15 = pbVar18 + (1 - (int)unaff_s6);\n      }" ({ "{") (expression_statement "pbVar15 = pbVar18 + (1 - (int)unaff_s6);" (assignment_expression "pbVar15 = pbVar18 + (1 - (int)unaff_s6)" (identifier "pbVar15") (= "=") (binary_expression "pbVar18 + (1 - (int)unaff_s6)" (identifier "pbVar18") (+ "+") (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)(pbVar15 + 7) & 0xfffffffc) - 4) break;" (if "if") (parenthesized_expression "(0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4)" (( "(") (binary_expression "0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4" (number_literal "0x1f3b") (< "<") (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar15 + 7)" (( "(") (binary_expression "pbVar15 + 7" (identifier "pbVar15") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar11 = pbVar18 + -(int)unaff_s6;" (assignment_expression "pbVar11 = pbVar18 + -(int)unaff_s6" (identifier "pbVar11") (= "=") (binary_expression "pbVar18 + -(int)unaff_s6" (identifier "pbVar18") (+ "+") (unary_expression "-(int)unaff_s6" (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))))) (; ";")) (expression_statement "pbVar14 = pbVar18 + 1;" (assignment_expression "pbVar14 = pbVar18 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar9") (= "=") (unary_expression "-(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar15 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar15 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar15 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar15 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar15 + 7)" (( "(") (binary_expression "pbVar15 + 7" (identifier "pbVar15") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar23 = puVar22 + iVar9;" (assignment_expression "puVar23 = puVar22 + iVar9" (identifier "puVar23") (= "=") (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "piVar5 = (int *)(puVar22 + iVar9 + 0x18);" (assignment_expression "piVar5 = (int *)(puVar22 + iVar9 + 0x18)" (identifier "piVar5") (= "=") (cast_expression "(int *)(puVar22 + iVar9 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + iVar9 + 0x18)" (( "(") (binary_expression "puVar22 + iVar9 + 0x18" (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_0002f2fc)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_0002f2fc" (* "*") (cast_expression "(code *)PTR_mempcpy_0002f2fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_0002f2fc"))) () ")")) (argument_list "(puVar22 + iVar9 + 0x1c)" (( "(") (binary_expression "puVar22 + iVar9 + 0x1c" (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar8 = (int)(char)pbVar18[1];" (assignment_expression "iVar8 = (int)(char)pbVar18[1]" (identifier "iVar8") (= "=") (cast_expression "(int)(char)pbVar18[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar18[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar18[1]" (identifier "pbVar18") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar5 = 0;" (assignment_expression "*piVar5 = 0" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)piVar5;" (assignment_expression "*local_34 = (int)piVar5" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) (; ";")) (expression_statement "pbVar10 = unaff_s6;" (assignment_expression "pbVar10 = unaff_s6" (identifier "pbVar10") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "unaff_s6 = pbVar14;" (assignment_expression "unaff_s6 = pbVar14" (identifier "unaff_s6") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "pbVar18 = pbVar14;" (assignment_expression "pbVar18 = pbVar14" (identifier "pbVar18") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "puVar22 = puVar22 + iVar9;" (assignment_expression "puVar22 = puVar22 + iVar9" (identifier "puVar22") (= "=") (binary_expression "puVar22 + iVar9" (identifier "puVar22") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "local_34 = piVar5;" (assignment_expression "local_34 = piVar5" (identifier "local_34") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "puVar17 = puVar23;" (assignment_expression "puVar17 = puVar23" (identifier "puVar17") (= "=") (identifier "puVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000182c4:\n  if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" (statement_identifier "LAB_000182c4") (: ":") (if_statement "if (local_2c == *(byte **)puVar1) {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(local_2c == *(byte **)puVar1)" (( "(") (binary_expression "local_2c == *(byte **)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(byte **)puVar1" (* "*") (cast_expression "(byte **)puVar1" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))) (expression_statement "pcVar25 = FUN_000188a0;" (assignment_expression "pcVar25 = FUN_000188a0" (identifier "pcVar25") (= "=") (identifier "FUN_000188a0")) (; ";")) (expression_statement "pbVar15 = local_2c;" (assignment_expression "pbVar15 = local_2c" (identifier "pbVar15") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar19 = PTR___stack_chk_fail_0002f2f0;" (assignment_expression "puVar19 = PTR___stack_chk_fail_0002f2f0" (identifier "puVar19") (= "=") (identifier "PTR___stack_chk_fail_0002f2f0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0002f2f0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002f2f0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002f2f0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002f2f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002f2f0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = puVar19 + 0x1e840;" (assignment_expression "puVar2 = puVar19 + 0x1e840" (identifier "puVar2") (= "=") (binary_expression "puVar19 + 0x1e840" (identifier "puVar19") (+ "+") (number_literal "0x1e840"))) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);" (assignment_expression "puVar4 = *(undefined4 **)(puVar19 + 0x16a6c)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(puVar19 + 0x16a6c)" (* "*") (cast_expression "(undefined4 **)(puVar19 + 0x16a6c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x16a6c)" (( "(") (binary_expression "puVar19 + 0x16a6c" (identifier "puVar19") (+ "+") (number_literal "0x16a6c")) () ")"))))) (; ";")) (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 "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -8)" (( "(") (binary_expression "puVar22 + -8" (identifier "puVar22") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_68")) (; ";")) (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 "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1c)" (( "(") (binary_expression "puVar22 + -0x1c" (identifier "puVar22") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "*(undefined **)(puVar22 + -0x160) = puVar2;" (assignment_expression "*(undefined **)(puVar22 + -0x160) = puVar2" (pointer_expression "*(undefined **)(puVar22 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x160)" (( "(") (binary_expression "puVar22 + -0x160" (identifier "puVar22") (+ "+") (number_literal "-0x160")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(code **)(puVar22 + -4) = pcVar25;" (assignment_expression "*(code **)(puVar22 + -4) = pcVar25" (pointer_expression "*(code **)(puVar22 + -4)" (* "*") (cast_expression "(code **)(puVar22 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -4)" (( "(") (binary_expression "puVar22 + -4" (identifier "puVar22") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar25")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0xc) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0xc) = pbVar18" (pointer_expression "*(byte **)(puVar22 + -0xc)" (* "*") (cast_expression "(byte **)(puVar22 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0xc)" (( "(") (binary_expression "puVar22 + -0xc" (identifier "puVar22") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (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 "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x10)" (( "(") (binary_expression "puVar22 + -0x10" (identifier "puVar22") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x14) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x14) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x14)" (* "*") (cast_expression "(int *)(puVar22 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x14)" (( "(") (binary_expression "puVar22 + -0x14" (identifier "puVar22") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x18) = param_3;" (assignment_expression "*(byte **)(puVar22 + -0x18) = param_3" (pointer_expression "*(byte **)(puVar22 + -0x18)" (* "*") (cast_expression "(byte **)(puVar22 + -0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x18)" (( "(") (binary_expression "puVar22 + -0x18" (identifier "puVar22") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined **)(puVar22 + -0x20) = puVar1;" (assignment_expression "*(undefined **)(puVar22 + -0x20) = puVar1" (pointer_expression "*(undefined **)(puVar22 + -0x20)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x20)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x20)" (( "(") (binary_expression "puVar22 + -0x20" (identifier "puVar22") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (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 "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x24)" (( "(") (binary_expression "puVar22 + -0x24" (identifier "puVar22") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x28) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x28) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x28)" (* "*") (cast_expression "(byte **)(puVar22 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x28)" (( "(") (binary_expression "puVar22 + -0x28" (identifier "puVar22") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(puVar22 + -0x144) = puVar4;" (assignment_expression "*(undefined4 **)(puVar22 + -0x144) = puVar4" (pointer_expression "*(undefined4 **)(puVar22 + -0x144)" (* "*") (cast_expression "(undefined4 **)(puVar22 + -0x144)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x144)" (( "(") (binary_expression "puVar22 + -0x144" (identifier "puVar22") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x154) = pbVar15 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = pbVar15 + 1" (pointer_expression "*(byte **)(puVar22 + -0x154)" (* "*") (cast_expression "(byte **)(puVar22 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x154)" (( "(") (binary_expression "puVar22 + -0x154" (identifier "puVar22") (+ "+") (number_literal "-0x154")) () ")")))) (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = (byte *)(uint)*pbVar15;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar15" (identifier "pbVar14") (= "=") (binary_expression "(byte *)(uint)*pbVar15" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar15"))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x2c) = *puVar4;" (assignment_expression "*(undefined4 *)(puVar22 + -0x2c) = *puVar4" (pointer_expression "*(undefined4 *)(puVar22 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x2c)" (( "(") (binary_expression "puVar22 + -0x2c" (identifier "puVar22") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar19 + 0x16878);" (assignment_expression "iVar8 = *(int *)(puVar19 + 0x16878)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar19 + 0x16878)" (* "*") (cast_expression "(int *)(puVar19 + 0x16878)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x16878)" (( "(") (binary_expression "puVar19 + 0x16878" (identifier "puVar19") (+ "+") (number_literal "0x16878")) () ")"))))) (; ";")) (expression_statement "pbVar18 = pbVar11;" (assignment_expression "pbVar18 = pbVar11" (identifier "pbVar18") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "pbVar24 = pbVar10;" (assignment_expression "pbVar24 = pbVar10" (identifier "pbVar24") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (pbVar14 != (byte *)0x0) {\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }" (if "if") (parenthesized_expression "(pbVar14 != (byte *)0x0)" (( "(") (binary_expression "pbVar14 != (byte *)0x0" (identifier "pbVar14") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar3 = *(uint *)(puVar22 + 0x10);\n    unaff_s1 = uVar3 & 2;\n    param_2 = (byte *)(uVar3 & 0x10);\n    *(uint *)(puVar22 + -0x140) = uVar3 & 5;\n    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);\n    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;\n    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;\n    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;\n    param_3 = pbVar15;\n    unaff_s6 = param_4;\n    do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);\n  }" ({ "{") (expression_statement "uVar3 = *(uint *)(puVar22 + 0x10);" (assignment_expression "uVar3 = *(uint *)(puVar22 + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(puVar22 + 0x10)" (* "*") (cast_expression "(uint *)(puVar22 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = uVar3 & 2;" (assignment_expression "unaff_s1 = uVar3 & 2" (identifier "unaff_s1") (= "=") (binary_expression "uVar3 & 2" (identifier "uVar3") (& "&") (number_literal "2"))) (; ";")) (expression_statement "param_2 = (byte *)(uVar3 & 0x10);" (assignment_expression "param_2 = (byte *)(uVar3 & 0x10)" (identifier "param_2") (= "=") (cast_expression "(byte *)(uVar3 & 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar3 & 0x10)" (( "(") (binary_expression "uVar3 & 0x10" (identifier "uVar3") (& "&") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar22 + -0x140) = uVar3 & 5;" (assignment_expression "*(uint *)(puVar22 + -0x140) = uVar3 & 5" (pointer_expression "*(uint *)(puVar22 + -0x140)" (* "*") (cast_expression "(uint *)(puVar22 + -0x140)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x140)" (( "(") (binary_expression "puVar22 + -0x140" (identifier "puVar22") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "uVar3 & 5" (identifier "uVar3") (& "&") (number_literal "5"))) (; ";")) (expression_statement "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);" (assignment_expression "*(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868)" (pointer_expression "*(undefined4 *)(puVar22 + -0x148)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x148)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x148)" (( "(") (binary_expression "puVar22 + -0x148" (identifier "puVar22") (+ "+") (number_literal "-0x148")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar19 + 0x16868)" (* "*") (cast_expression "(undefined4 *)(puVar19 + 0x16868)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x16868)" (( "(") (binary_expression "puVar19 + 0x16868" (identifier "puVar19") (+ "+") (number_literal "0x16868")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;" (assignment_expression "*(int *)(puVar22 + -0x14c) = iVar8 + -0x2090" (pointer_expression "*(int *)(puVar22 + -0x14c)" (* "*") (cast_expression "(int *)(puVar22 + -0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x14c)" (( "(") (binary_expression "puVar22 + -0x14c" (identifier "puVar22") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "iVar8 + -0x2090" (identifier "iVar8") (+ "+") (number_literal "-0x2090"))) (; ";")) (expression_statement "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;" (assignment_expression "*(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar22 + -0x138)" (* "*") (cast_expression "(int *)(puVar22 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x138)" (( "(") (binary_expression "puVar22 + -0x138" (identifier "puVar22") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (binary_expression "*(int *)(puVar19 + 0x16878) + -0x7e50" (pointer_expression "*(int *)(puVar19 + 0x16878)" (* "*") (cast_expression "(int *)(puVar19 + 0x16878)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x16878)" (( "(") (binary_expression "puVar19 + 0x16878" (identifier "puVar19") (+ "+") (number_literal "0x16878")) () ")")))) (+ "+") (number_literal "-0x7e50"))) (; ";")) (expression_statement "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;" (assignment_expression "*(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar22 + -0x13c)" (* "*") (cast_expression "(int *)(puVar22 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x13c)" (( "(") (binary_expression "puVar22 + -0x13c" (identifier "puVar22") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar19 + 0x16878) + -0x231c" (pointer_expression "*(int *)(puVar19 + 0x16878)" (* "*") (cast_expression "(int *)(puVar19 + 0x16878)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x16878)" (( "(") (binary_expression "puVar19 + 0x16878" (identifier "puVar19") (+ "+") (number_literal "0x16878")) () ")")))) (+ "+") (number_literal "-0x231c"))) (; ";")) (expression_statement "param_3 = pbVar15;" (assignment_expression "param_3 = pbVar15" (identifier "param_3") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "unaff_s6 = param_4;" (assignment_expression "unaff_s6 = param_4" (identifier "unaff_s6") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    } while (pbVar14 != (byte *)0x0);" (do "do") (compound_statement "{\n      pbVar15 = pbVar14;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }\n      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }\n      uVar3 = 1;\n      pbVar14 = pbVar15;\n      if (pbVar24 == pbVar11) goto LAB_00018b74;\n      pbVar14 = (byte *)(uint)*pbVar24;\n      if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }\n      uVar3 = 1;\n      unaff_s6 = pbVar15;\n      if (pbVar14 != pbVar15) goto LAB_00018b74;\n      param_3 = *(byte **)(puVar22 + -0x154);\n      unaff_s6 = (byte *)0x0;\n      pbVar14 = (byte *)(uint)*param_3;\n      pbVar24 = pbVar24 + 1;\n      *(byte **)(puVar22 + -0x154) = param_3 + 1;\n    }" ({ "{") (expression_statement "pbVar15 = pbVar14;" (assignment_expression "pbVar15 = pbVar14" (identifier "pbVar15") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" (( "(") (pointer_expression "**(code **)(puVar2 + -0x7ec4)" (* "*") (pointer_expression "*(code **)(puVar2 + -0x7ec4)" (* "*") (cast_expression "(code **)(puVar2 + -0x7ec4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7ec4)" (( "(") (binary_expression "puVar2 + -0x7ec4" (identifier "puVar2") (+ "+") (number_literal "-0x7ec4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(undefined **)(puVar22 + -0x160)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x160)" (( "(") (binary_expression "puVar22 + -0x160" (identifier "puVar22") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);" (assignment_expression "pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" (identifier "pbVar15") (= "=") (binary_expression "(byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(*piVar5 + (int)pbVar14 * 4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4 + 3)" (( "(") (binary_expression "*piVar5 + (int)pbVar14 * 4 + 3" (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" (if "if") (parenthesized_expression "(((uint)(pbVar15 + -0x21) & 0xff) < 0x3c)" (( "(") (binary_expression "((uint)(pbVar15 + -0x21) & 0xff) < 0x3c" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar15 + -0x21)" (( "(") (binary_expression "pbVar15 + -0x21" (identifier "pbVar15") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();\n        return uVar3;\n      }" ({ "{") (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" (identifier "uVar3") (= "=") (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))" (( "(") (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" (* "*") (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4))" (( "(") (binary_expression "puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" (identifier "puVar2") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)" (( "(") (binary_expression "*(int *)(puVar22 + -0x14c) +\n                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4" (pointer_expression "*(int *)(puVar22 + -0x14c)" (* "*") (cast_expression "(int *)(puVar22 + -0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x14c)" (( "(") (binary_expression "puVar22 + -0x14c" (identifier "puVar22") (+ "+") (number_literal "-0x14c")) () ")")))) (+ "+") (binary_expression "((uint)(pbVar15 + -0x21) & 0xff) * 4" (parenthesized_expression "((uint)(pbVar15 + -0x21) & 0xff)" (( "(") (binary_expression "(uint)(pbVar15 + -0x21) & 0xff" (call_expression "(uint)(pbVar15 + -0x21)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar15 + -0x21)" (( "(") (binary_expression "pbVar15 + -0x21" (identifier "pbVar15") (+ "+") (number_literal "-0x21")) () ")"))) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "pbVar14 = pbVar15;" (assignment_expression "pbVar14 = pbVar15" (identifier "pbVar14") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (pbVar24 == pbVar11) goto LAB_00018b74;" (if "if") (parenthesized_expression "(pbVar24 == pbVar11)" (( "(") (binary_expression "pbVar24 == pbVar11" (identifier "pbVar24") (== "==") (identifier "pbVar11")) () ")")) (goto_statement "goto LAB_00018b74;" (goto "goto") (statement_identifier "LAB_00018b74") (; ";"))) (expression_statement "pbVar14 = (byte *)(uint)*pbVar24;" (assignment_expression "pbVar14 = (byte *)(uint)*pbVar24" (identifier "pbVar14") (= "=") (binary_expression "(byte *)(uint)*pbVar24" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar24"))) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 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        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();\n        puVar2 = *(undefined **)(puVar22 + -0x160);\n        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar2 + -0x7ec4))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar2 + -0x7ec4))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7ec4))" (( "(") (pointer_expression "**(code **)(puVar2 + -0x7ec4)" (* "*") (pointer_expression "*(code **)(puVar2 + -0x7ec4)" (* "*") (cast_expression "(code **)(puVar2 + -0x7ec4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7ec4)" (( "(") (binary_expression "puVar2 + -0x7ec4" (identifier "puVar2") (+ "+") (number_literal "-0x7ec4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = *(undefined **)(puVar22 + -0x160);" (assignment_expression "puVar2 = *(undefined **)(puVar22 + -0x160)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined **)(puVar22 + -0x160)" (* "*") (cast_expression "(undefined **)(puVar22 + -0x160)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x160)" (( "(") (binary_expression "puVar22 + -0x160" (identifier "puVar22") (+ "+") (number_literal "-0x160")) () ")"))))) (; ";")) (expression_statement "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);" (assignment_expression "pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4)" (identifier "pbVar14") (= "=") (pointer_expression "*(byte **)(*piVar5 + (int)pbVar14 * 4)" (* "*") (cast_expression "(byte **)(*piVar5 + (int)pbVar14 * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + (int)pbVar14 * 4)" (( "(") (binary_expression "*piVar5 + (int)pbVar14 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "(int)pbVar14 * 4" (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "unaff_s6 = pbVar15;" (assignment_expression "unaff_s6 = pbVar15" (identifier "unaff_s6") (= "=") (identifier "pbVar15")) (; ";")) (if_statement "if (pbVar14 != pbVar15) goto LAB_00018b74;" (if "if") (parenthesized_expression "(pbVar14 != pbVar15)" (( "(") (binary_expression "pbVar14 != pbVar15" (identifier "pbVar14") (!= "!=") (identifier "pbVar15")) () ")")) (goto_statement "goto LAB_00018b74;" (goto "goto") (statement_identifier "LAB_00018b74") (; ";"))) (expression_statement "param_3 = *(byte **)(puVar22 + -0x154);" (assignment_expression "param_3 = *(byte **)(puVar22 + -0x154)" (identifier "param_3") (= "=") (pointer_expression "*(byte **)(puVar22 + -0x154)" (* "*") (cast_expression "(byte **)(puVar22 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x154)" (( "(") (binary_expression "puVar22 + -0x154" (identifier "puVar22") (+ "+") (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 "pbVar14 = (byte *)(uint)*param_3;" (assignment_expression "pbVar14 = (byte *)(uint)*param_3" (identifier "pbVar14") (= "=") (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 "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x154) = param_3 + 1;" (assignment_expression "*(byte **)(puVar22 + -0x154) = param_3 + 1" (pointer_expression "*(byte **)(puVar22 + -0x154)" (* "*") (cast_expression "(byte **)(puVar22 + -0x154)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x154)" (( "(") (binary_expression "puVar22 + -0x154" (identifier "puVar22") (+ "+") (number_literal "-0x154")) () ")")))) (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar14 != (byte *)0x0)" (( "(") (binary_expression "pbVar14 != (byte *)0x0" (identifier "pbVar14") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar24 != pbVar11) {\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar24 != pbVar11)" (( "(") (binary_expression "pbVar24 != pbVar11" (identifier "pbVar24") (!= "!=") (identifier "pbVar11")) () ")")) (compound_statement "{\n    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);\n    if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }\n  }" ({ "{") (expression_statement "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);" (assignment_expression "param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8)" (identifier "param_3") (= "=") (cast_expression "(byte *)(*(uint *)(puVar22 + 0x10) & 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (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 "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 0x10)" (( "(") (binary_expression "puVar22 + 0x10" (identifier "puVar22") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3 == (byte *)0x0) {\n      uVar3 = 1;\n    }\n    else {\n      uVar3 = (uint)(*pbVar24 != 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      uVar3 = 1;\n    }" ({ "{") (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" (else "else") (compound_statement "{\n      uVar3 = (uint)(*pbVar24 != 0x2f);\n    }" ({ "{") (expression_statement "uVar3 = (uint)(*pbVar24 != 0x2f);" (assignment_expression "uVar3 = (uint)(*pbVar24 != 0x2f)" (identifier "uVar3") (= "=") (call_expression "(uint)(*pbVar24 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar24 != 0x2f)" (( "(") (binary_expression "*pbVar24 != 0x2f" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (!= "!=") (number_literal "0x2f")) () ")")))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00018b74:\n  iVar9 = *(int *)(puVar22 + -0x2c);" (statement_identifier "LAB_00018b74") (: ":") (expression_statement "iVar9 = *(int *)(puVar22 + -0x2c);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x2c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x2c)" (* "*") (cast_expression "(int *)(puVar22 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x2c)" (( "(") (binary_expression "puVar22 + -0x2c" (identifier "puVar22") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar9 == **(int **)(puVar22 + -0x144)) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(iVar9 == **(int **)(puVar22 + -0x144))" (( "(") (binary_expression "iVar9 == **(int **)(puVar22 + -0x144)" (identifier "iVar9") (== "==") (pointer_expression "**(int **)(puVar22 + -0x144)" (* "*") (pointer_expression "*(int **)(puVar22 + -0x144)" (* "*") (cast_expression "(int **)(puVar22 + -0x144)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x144)" (( "(") (binary_expression "puVar22 + -0x144" (identifier "puVar22") (+ "+") (number_literal "-0x144")) () ")")))))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(puVar2 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(puVar2 + -0x7df0)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar2 + -0x7df0)" (* "*") (cast_expression "(code **)(puVar2 + -0x7df0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7df0)" (( "(") (binary_expression "puVar2 + -0x7df0" (identifier "puVar2") (+ "+") (number_literal "-0x7df0")) () ")"))))) (; ";")) (expression_statement "pcVar26 = gnu_fnmatch;" (assignment_expression "pcVar26 = gnu_fnmatch" (identifier "pcVar26") (= "=") (identifier "gnu_fnmatch")) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" (identifier "puVar17") (= "=") (binary_expression "puVar22 + -0x1e0" (identifier "puVar22") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15df8);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15df8)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar25 + 0x15df8)" (* "*") (cast_expression "(code **)(pcVar25 + 0x15df8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x15df8)" (( "(") (binary_expression "pcVar25 + 0x15df8" (identifier "pcVar25") (+ "+") (number_literal "0x15df8")) () ")"))))) (; ";")) (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 "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x19c)" (( "(") (binary_expression "puVar22 + -0x19c" (identifier "puVar22") (+ "+") (number_literal "-0x19c")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piVar5 = *(int **)(pcVar25 + 0x15e28);" (assignment_expression "piVar5 = *(int **)(pcVar25 + 0x15e28)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(pcVar25 + 0x15e28)" (* "*") (cast_expression "(int **)(pcVar25 + 0x15e28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x15e28)" (( "(") (binary_expression "pcVar25 + 0x15e28" (identifier "pcVar25") (+ "+") (number_literal "0x15e28")) () ")"))))) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x180) = pbVar24;" (assignment_expression "*(byte **)(puVar22 + -0x180) = pbVar24" (pointer_expression "*(byte **)(puVar22 + -0x180)" (* "*") (cast_expression "(byte **)(puVar22 + -0x180)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x180)" (( "(") (binary_expression "puVar22 + -0x180" (identifier "puVar22") (+ "+") (number_literal "-0x180")) () ")")))) (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x198) = pbVar14;" (assignment_expression "*(byte **)(puVar22 + -0x198) = pbVar14" (pointer_expression "*(byte **)(puVar22 + -0x198)" (* "*") (cast_expression "(byte **)(puVar22 + -0x198)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x198)" (( "(") (binary_expression "puVar22 + -0x198" (identifier "puVar22") (+ "+") (number_literal "-0x198")) () ")")))) (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "*(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;" (assignment_expression "*(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc" (pointer_expression "*(code **)(puVar22 + -0x1c8)" (* "*") (cast_expression "(code **)(puVar22 + -0x1c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")")))) (= "=") (binary_expression "pcVar25 + 0x1dbfc" (identifier "pcVar25") (+ "+") (number_literal "0x1dbfc"))) (; ";")) (expression_statement "*(code **)(puVar22 + -0x17c) = pcVar26;" (assignment_expression "*(code **)(puVar22 + -0x17c) = pcVar26" (pointer_expression "*(code **)(puVar22 + -0x17c)" (* "*") (cast_expression "(code **)(puVar22 + -0x17c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x17c)" (( "(") (binary_expression "puVar22 + -0x17c" (identifier "puVar22") (+ "+") (number_literal "-0x17c")) () ")")))) (= "=") (identifier "pcVar26")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x184) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x184) = iVar8" (pointer_expression "*(int *)(puVar22 + -0x184)" (* "*") (cast_expression "(int *)(puVar22 + -0x184)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x184)" (( "(") (binary_expression "puVar22 + -0x184" (identifier "puVar22") (+ "+") (number_literal "-0x184")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (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 "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x188)" (( "(") (binary_expression "puVar22 + -0x188" (identifier "puVar22") (+ "+") (number_literal "-0x188")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x18c) = unaff_s5;" (assignment_expression "*(int *)(puVar22 + -0x18c) = unaff_s5" (pointer_expression "*(int *)(puVar22 + -0x18c)" (* "*") (cast_expression "(int *)(puVar22 + -0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x18c)" (( "(") (binary_expression "puVar22 + -0x18c" (identifier "puVar22") (+ "+") (number_literal "-0x18c")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(byte **)(puVar22 + -400) = param_3;" (assignment_expression "*(byte **)(puVar22 + -400) = param_3" (pointer_expression "*(byte **)(puVar22 + -400)" (* "*") (cast_expression "(byte **)(puVar22 + -400)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -400)" (( "(") (binary_expression "puVar22 + -400" (identifier "puVar22") (+ "+") (number_literal "-400")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x194) = pbVar11;" (assignment_expression "*(byte **)(puVar22 + -0x194) = pbVar11" (pointer_expression "*(byte **)(puVar22 + -0x194)" (* "*") (cast_expression "(byte **)(puVar22 + -0x194)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x194)" (( "(") (binary_expression "puVar22 + -0x194" (identifier "puVar22") (+ "+") (number_literal "-0x194")) () ")")))) (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x1a0) = param_2;" (assignment_expression "*(byte **)(puVar22 + -0x1a0) = param_2" (pointer_expression "*(byte **)(puVar22 + -0x1a0)" (* "*") (cast_expression "(byte **)(puVar22 + -0x1a0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1a0)" (( "(") (binary_expression "puVar22 + -0x1a0" (identifier "puVar22") (+ "+") (number_literal "-0x1a0")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x1b4) = iVar9;" (assignment_expression "*(int *)(puVar22 + -0x1b4) = iVar9" (pointer_expression "*(int *)(puVar22 + -0x1b4)" (* "*") (cast_expression "(int *)(puVar22 + -0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1b4)" (( "(") (binary_expression "puVar22 + -0x1b4" (identifier "puVar22") (+ "+") (number_literal "-0x1b4")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x1b8) = pbVar10;" (assignment_expression "*(byte **)(puVar22 + -0x1b8) = pbVar10" (pointer_expression "*(byte **)(puVar22 + -0x1b8)" (* "*") (cast_expression "(byte **)(puVar22 + -0x1b8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1b8)" (( "(") (binary_expression "puVar22 + -0x1b8" (identifier "puVar22") (+ "+") (number_literal "-0x1b8")) () ")")))) (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "*(int *)(puVar22 + -0x1a4) = *piVar5;" (assignment_expression "*(int *)(puVar22 + -0x1a4) = *piVar5" (pointer_expression "*(int *)(puVar22 + -0x1a4)" (* "*") (cast_expression "(int *)(puVar22 + -0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1a4)" (( "(") (binary_expression "puVar22 + -0x1a4" (identifier "puVar22") (+ "+") (number_literal "-0x1a4")) () ")")))) (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "iVar8 = (*pcVar20)();" (assignment_expression "iVar8 = (*pcVar20)()" (identifier "iVar8") (= "=") (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 1) {\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar8 != 1)" (( "(") (binary_expression "iVar8 != 1" (identifier "iVar8") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    puVar13 = puVar22 + -0x1ac;\n    pcVar25 = *(code **)(iVar9 + -0x7dac);\n    puVar16 = puVar22 + -0x1b4;\n    *(undefined4 *)(puVar22 + -0x1ac) = 0;\n    *(undefined4 *)(puVar22 + -0x1a8) = 0;\n    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);\n    pbVar11 = (byte *)(iVar8 + 1);\n    iVar9 = *(int *)(puVar22 + -0x1c8);\n    if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar13 = puVar22 + -0x1ac;" (assignment_expression "puVar13 = puVar22 + -0x1ac" (identifier "puVar13") (= "=") (binary_expression "puVar22 + -0x1ac" (identifier "puVar22") (+ "+") (number_literal "-0x1ac"))) (; ";")) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar22 + -0x1b4;" (assignment_expression "puVar16 = puVar22 + -0x1b4" (identifier "puVar16") (= "=") (binary_expression "puVar22 + -0x1b4" (identifier "puVar22") (+ "+") (number_literal "-0x1b4"))) (; ";")) (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 "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1ac)" (( "(") (binary_expression "puVar22 + -0x1ac" (identifier "puVar22") (+ "+") (number_literal "-0x1ac")) () ")")))) (= "=") (number_literal "0")) (; ";")) (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 "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1a8)" (( "(") (binary_expression "puVar22 + -0x1a8" (identifier "puVar22") (+ "+") (number_literal "-0x1a8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = (*pcVar25)(0,puVar16,0,puVar13);" (assignment_expression "iVar8 = (*pcVar25)(0,puVar16,0,puVar13)" (identifier "iVar8") (= "=") (call_expression "(*pcVar25)(0,puVar16,0,puVar13)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(0,puVar16,0,puVar13)" (( "(") (number_literal "0") (, ",") (identifier "puVar16") (, ",") (number_literal "0") (, ",") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "pbVar11 = (byte *)(iVar8 + 1);" (assignment_expression "pbVar11 = (byte *)(iVar8 + 1)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(iVar8 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (pbVar11 != (byte *)0x0) {\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" (if "if") (parenthesized_expression "(pbVar11 != (byte *)0x0)" (( "(") (binary_expression "pbVar11 != (byte *)0x0" (identifier "pbVar11") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n      uVar12 = 0x129;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (iVar8 == 0) goto LAB_00019800;\n      pbVar15 = puVar22 + -0x1b8;\n      pbVar10 = pbVar15;\n      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);\n      pbVar14 = param_3 + 1;\n      iVar9 = *(int *)(puVar22 + -0x1c8);\n      if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7dd8)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7dd8)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dd8)" (( "(") (binary_expression "iVar9 + -0x7dd8" (identifier "iVar9") (+ "+") (number_literal "-0x7dd8")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "uVar12 = 0x129;" (assignment_expression "uVar12 = 0x129" (identifier "uVar12") (= "=") (number_literal "0x129")) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00019800;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019800;" (goto "goto") (statement_identifier "LAB_00019800") (; ";"))) (expression_statement "pbVar15 = puVar22 + -0x1b8;" (assignment_expression "pbVar15 = puVar22 + -0x1b8" (identifier "pbVar15") (= "=") (binary_expression "puVar22 + -0x1b8" (identifier "puVar22") (+ "+") (number_literal "-0x1b8"))) (; ";")) (expression_statement "pbVar10 = pbVar15;" (assignment_expression "pbVar10 = pbVar15" (identifier "pbVar10") (= "=") (identifier "pbVar15")) (; ";")) (expression_statement "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);" (assignment_expression "param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" (identifier "param_3") (= "=") (cast_expression "(byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7dac)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(0,pbVar15,0,puVar13)" (( "(") (number_literal "0") (, ",") (identifier "pbVar15") (, ",") (number_literal "0") (, ",") (identifier "puVar13") () ")"))))) (; ";")) (expression_statement "pbVar14 = param_3 + 1;" (assignment_expression "pbVar14 = param_3 + 1" (identifier "pbVar14") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (pbVar14 != (byte *)0x0) {\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }" (if "if") (parenthesized_expression "(pbVar14 != (byte *)0x0)" (( "(") (binary_expression "pbVar14 != (byte *)0x0" (identifier "pbVar14") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);\n        iVar9 = *(int *)(puVar22 + -0x1c8);\n        if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }\n        pbVar24 = pbVar11 + (int)pbVar14;\n        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }\n        uVar3 = 0xffffffff;\n        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();\n        iVar8 = *(int *)(puVar22 + -0x1c8);\n        *puVar4 = 0xc;\n        goto LAB_00019590;\n      }" ({ "{") (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar9 + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dd8))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7dd8)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7dd8)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dd8)" (( "(") (binary_expression "iVar9 + -0x7dd8" (identifier "iVar9") (+ "+") (number_literal "-0x7dd8")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = 0x12d;\n          goto LAB_00019800;\n        }" ({ "{") (expression_statement "uVar12 = 0x12d;" (assignment_expression "uVar12 = 0x12d" (identifier "uVar12") (= "=") (number_literal "0x12d")) (; ";")) (goto_statement "goto LAB_00019800;" (goto "goto") (statement_identifier "LAB_00019800") (; ";")) (} "}"))) (expression_statement "pbVar24 = pbVar11 + (int)pbVar14;" (assignment_expression "pbVar24 = pbVar11 + (int)pbVar14" (identifier "pbVar24") (= "=") (binary_expression "pbVar11 + (int)pbVar14" (identifier "pbVar11") (+ "+") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14")))) (; ";")) (if_statement "if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" (if "if") (parenthesized_expression "((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000))" (( "(") (binary_expression "(pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)" (parenthesized_expression "(pbVar11 <= pbVar24)" (( "(") (binary_expression "pbVar11 <= pbVar24" (identifier "pbVar11") (<= "<=") (identifier "pbVar24")) () ")")) (&& "&&") (parenthesized_expression "(pbVar24 < (byte *)0x40000000)" (( "(") (binary_expression "pbVar24 < (byte *)0x40000000" (identifier "pbVar24") (< "<") (cast_expression "(byte *)0x40000000" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40000000"))) () ")"))) () ")")) (compound_statement "{\n          if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }\n          iVar8 = (**(code **)(iVar9 + -0x7e28))();\n          iVar9 = *(int *)(puVar22 + -0x1c8);\n          if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }\n        }" ({ "{") (if_statement "if (pbVar24 < (byte *)0x7d0) {\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" (if "if") (parenthesized_expression "(pbVar24 < (byte *)0x7d0)" (( "(") (binary_expression "pbVar24 < (byte *)0x7d0" (identifier "pbVar24") (< "<") (cast_expression "(byte *)0x7d0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7d0"))) () ")")) (compound_statement "{\n            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);\n            puVar17 = puVar22 + iVar6 + -0x1c8;\n            pbVar24 = puVar17 + (int)pbVar11 * 4;\n            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }\n            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + iVar6 + -0x1e0;\n            goto LAB_00019590;\n          }" ({ "{") (expression_statement "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);" (assignment_expression "iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8)" (identifier "iVar6") (= "=") (unary_expression "-((int)pbVar24 * 4 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)pbVar24 * 4 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)pbVar24 * 4 + 7U & 0xfffffff8" (binary_expression "(int)pbVar24 * 4 + 7U" (binary_expression "(int)pbVar24 * 4" (cast_expression "(int)pbVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar24")) (* "*") (number_literal "4")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1c8;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1c8" (identifier "puVar17") (= "=") (binary_expression "puVar22 + iVar6 + -0x1c8" (binary_expression "puVar22 + iVar6" (identifier "puVar22") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-0x1c8"))) (; ";")) (expression_statement "pbVar24 = puVar17 + (int)pbVar11 * 4;" (assignment_expression "pbVar24 = puVar17 + (int)pbVar11 * 4" (identifier "pbVar24") (= "=") (binary_expression "puVar17 + (int)pbVar11 * 4" (identifier "puVar17") (+ "+") (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7dac)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(puVar17,puVar16,pbVar11,puVar13)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar16") (, ",") (identifier "pbVar11") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (( "(") (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7dd8")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );\n            }" ({ "{") (labeled_statement "LAB_00019820:\n              do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" (statement_identifier "LAB_00019820") (: ":") (do_statement "do {\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              } while( true );" (do "do") (compound_statement "{\n                uVar12 = 0x147;\nLAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);\n              }" ({ "{") (expression_statement "uVar12 = 0x147;" (assignment_expression "uVar12 = 0x147" (identifier "uVar12") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_00019800:\n                (**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" (statement_identifier "LAB_00019800") (: ":") (expression_statement "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);" (call_expression "(**(code **)(iVar9 + -0x7ec8))\n                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" (parenthesized_expression "(**(code **)(iVar9 + -0x7ec8))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7ec8)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7ec8)" (* "*") (cast_expression "(code **)(iVar9 + -0x7ec8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7ec8)" (( "(") (binary_expression "iVar9 + -0x7ec8" (identifier "iVar9") (+ "+") (number_literal "-0x7ec8")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,\n                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88)" (( "(") (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x229c" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar9 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x7fc8)" (( "(") (binary_expression "iVar9 + -0x7fc8" (identifier "iVar9") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "-0x229c")) (, ",") (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x22ac" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar9 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x7fc8)" (( "(") (binary_expression "iVar9 + -0x7fc8" (identifier "iVar9") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "-0x22ac")) (, ",") (identifier "uVar12") (, ",") (binary_expression "*(int *)(iVar9 + -0x7fc8) + -0x1f88" (pointer_expression "*(int *)(iVar9 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar9 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x7fc8)" (( "(") (binary_expression "iVar9 + -0x7fc8" (identifier "iVar9") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "-0x1f88")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(**(code **)(iVar9 + -0x7dac))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7dac)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar15") (, ",") (identifier "pbVar14") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18" (pointer_expression "*(byte **)(puVar22 + iVar6 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar22 + iVar6 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + iVar6 + -0x1d0)" (( "(") (binary_expression "puVar22 + iVar6 + -0x1d0" (binary_expression "puVar22 + iVar6" (identifier "puVar22") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" (identifier "pbVar10") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "FUN_000175b0") (argument_list "(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,\n                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar17") (, ",") (identifier "pbVar24") (, ",") (binary_expression "pbVar24 + (int)param_3 * 4" (identifier "pbVar24") (+ "+") (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar18 << 0x1d)" (( "(") (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "puVar17 = puVar22 + iVar6 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + iVar6 + -0x1e0" (identifier "puVar17") (= "=") (binary_expression "puVar22 + iVar6 + -0x1e0" (binary_expression "puVar22 + iVar6" (identifier "puVar22") (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-0x1e0"))) (; ";")) (goto_statement "goto LAB_00019590;" (goto "goto") (statement_identifier "LAB_00019590") (; ";")) (} "}"))) (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7e28))();" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e28))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar9 + -0x7e28))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e28))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7e28)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7e28)" (* "*") (cast_expression "(code **)(iVar9 + -0x7e28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7e28)" (( "(") (binary_expression "iVar9 + -0x7e28" (identifier "iVar9") (+ "+") (number_literal "-0x7e28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(int *)(puVar22 + -0x1bc) = iVar8;\n            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);\n            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);\n            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);\n            iVar9 = *(int *)(puVar22 + -0x1c8);\n            if (iVar8 == 0) goto LAB_00019820;\n            pcVar25 = *(code **)(iVar9 + -0x7dac);\n            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);\n            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);\n            *(byte **)(puVar22 + -0x1d0) = pbVar18;\n            pbVar10 = pbVar24;\n            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));\n            iVar8 = *(int *)(puVar22 + -0x1c8);\n            pbVar11 = pbVar24;\n            puVar17 = puVar22 + -0x1e0;\n            goto LAB_00019590;\n          }" ({ "{") (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar22 + -0x1bc) = iVar8;" (assignment_expression "*(int *)(puVar22 + -0x1bc) = iVar8" (pointer_expression "*(int *)(puVar22 + -0x1bc)" (* "*") (cast_expression "(int *)(puVar22 + -0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1bc)" (( "(") (binary_expression "puVar22 + -0x1bc" (identifier "puVar22") (+ "+") (number_literal "-0x1bc")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);" (assignment_expression "pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(iVar8 + (int)pbVar11 * 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + (int)pbVar11 * 4)" (( "(") (binary_expression "iVar8 + (int)pbVar11 * 4" (identifier "iVar8") (+ "+") (binary_expression "(int)pbVar11 * 4" (cast_expression "(int)pbVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar11")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13);" (call_expression "(*pcVar25)(iVar8,puVar16,pbVar11,puVar13)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(iVar8,puVar16,pbVar11,puVar13)" (( "(") (identifier "iVar8") (, ",") (identifier "puVar16") (, ",") (identifier "pbVar11") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13)" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dd8)" (( "(") (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dd8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7dd8")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00019820;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019820;" (goto "goto") (statement_identifier "LAB_00019820") (; ";"))) (expression_statement "pcVar25 = *(code **)(iVar9 + -0x7dac);" (assignment_expression "pcVar25 = *(code **)(iVar9 + -0x7dac)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(iVar9 + -0x7dac)" (* "*") (cast_expression "(code **)(iVar9 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7dac)" (( "(") (binary_expression "iVar9 + -0x7dac" (identifier "iVar9") (+ "+") (number_literal "-0x7dac")) () ")"))))) (; ";")) (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 "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1bc)" (( "(") (binary_expression "puVar22 + -0x1bc" (identifier "puVar22") (+ "+") (number_literal "-0x1bc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1bc)" (( "(") (binary_expression "puVar22 + -0x1bc" (identifier "puVar22") (+ "+") (number_literal "-0x1bc")) () ")"))))) (; ";")) (expression_statement "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);" (call_expression "(*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(pbVar24,pbVar15,pbVar14,puVar13)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar15") (, ",") (identifier "pbVar14") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (pointer_expression "*(byte **)(puVar22 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar22 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1d0)" (( "(") (binary_expression "puVar22 + -0x1d0" (identifier "puVar22") (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar10 = pbVar24;" (assignment_expression "pbVar10 = pbVar24" (identifier "pbVar10") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "FUN_000175b0") (argument_list "(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,\n                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1bc)" (( "(") (binary_expression "puVar22 + -0x1bc" (identifier "puVar22") (+ "+") (number_literal "-0x1bc")) () ")")))) (, ",") (identifier "pbVar24") (, ",") (binary_expression "pbVar24 + (int)param_3 * 4" (identifier "pbVar24") (+ "+") (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)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar18 << 0x1d)" (( "(") (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));" (call_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc))" (parenthesized_expression "(**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" (* "*") (cast_expression "(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar22 + -0x1c8) + -0x7dc8)" (( "(") (binary_expression "*(int *)(puVar22 + -0x1c8) + -0x7dc8" (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")")))) (+ "+") (number_literal "-0x7dc8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar22 + -0x1bc))" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1bc)" (( "(") (binary_expression "puVar22 + -0x1bc" (identifier "puVar22") (+ "+") (number_literal "-0x1bc")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" (identifier "puVar17") (= "=") (binary_expression "puVar22 + -0x1e0" (identifier "puVar22") (+ "+") (number_literal "-0x1e0"))) (; ";")) (goto_statement "goto LAB_00019590;" (goto "goto") (statement_identifier "LAB_00019590") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();" (assignment_expression "puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar9 + -0x7e60))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar9 + -0x7e60))()" (parenthesized_expression "(**(code **)(iVar9 + -0x7e60))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7e60)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7e60)" (* "*") (cast_expression "(code **)(iVar9 + -0x7e60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7e60)" (( "(") (binary_expression "iVar9 + -0x7e60" (identifier "iVar9") (+ "+") (number_literal "-0x7e60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "*puVar4 = 0xc;" (assignment_expression "*puVar4 = 0xc" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00019590;" (goto "goto") (statement_identifier "LAB_00019590") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "pbVar10 = *(byte **)(puVar22 + -0x1b8);" (assignment_expression "pbVar10 = *(byte **)(puVar22 + -0x1b8)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(puVar22 + -0x1b8)" (* "*") (cast_expression "(byte **)(puVar22 + -0x1b8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1b8)" (( "(") (binary_expression "puVar22 + -0x1b8" (identifier "puVar22") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);" (assignment_expression "iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar9 + -0x7e44))(pbVar10)" (parenthesized_expression "(**(code **)(iVar9 + -0x7e44))" (( "(") (pointer_expression "**(code **)(iVar9 + -0x7e44)" (* "*") (pointer_expression "*(code **)(iVar9 + -0x7e44)" (* "*") (cast_expression "(code **)(iVar9 + -0x7e44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + -0x7e44)" (( "(") (binary_expression "iVar9 + -0x7e44" (identifier "iVar9") (+ "+") (number_literal "-0x7e44")) () ")"))))) () ")")) (argument_list "(pbVar10)" (( "(") (identifier "pbVar10") () ")")))) (; ";")) (expression_statement "*(byte **)(puVar22 + -0x1d0) = pbVar18;" (assignment_expression "*(byte **)(puVar22 + -0x1d0) = pbVar18" (pointer_expression "*(byte **)(puVar22 + -0x1d0)" (* "*") (cast_expression "(byte **)(puVar22 + -0x1d0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar22 + -0x1d0)" (( "(") (binary_expression "puVar22 + -0x1d0" (identifier "puVar22") (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (identifier "FUN_000188a0") (argument_list "(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,\n                       (uint)((int)pbVar18 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(puVar22 + -0x1b4)" (* "*") (cast_expression "(undefined4 *)(puVar22 + -0x1b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1b4)" (( "(") (binary_expression "puVar22 + -0x1b4" (identifier "puVar22") (+ "+") (number_literal "-0x1b4")) () ")")))) (, ",") (identifier "pbVar10") (, ",") (binary_expression "pbVar10 + iVar8" (identifier "pbVar10") (+ "+") (identifier "iVar8")) (, ",") (binary_expression "(uint)((int)pbVar18 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar18 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar18 << 0x1d)" (( "(") (binary_expression "(int)pbVar18 << 0x1d" (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar22 + -0x1c8);" (assignment_expression "iVar8 = *(int *)(puVar22 + -0x1c8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1c8)" (* "*") (cast_expression "(int *)(puVar22 + -0x1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1c8)" (( "(") (binary_expression "puVar22 + -0x1c8" (identifier "puVar22") (+ "+") (number_literal "-0x1c8")) () ")"))))) (; ";")) (expression_statement "puVar17 = puVar22 + -0x1e0;" (assignment_expression "puVar17 = puVar22 + -0x1e0" (identifier "puVar17") (= "=") (binary_expression "puVar22 + -0x1e0" (identifier "puVar22") (+ "+") (number_literal "-0x1e0"))) (; ";")) (labeled_statement "LAB_00019590:\n  iVar9 = *(int *)(puVar22 + -0x1a4);" (statement_identifier "LAB_00019590") (: ":") (expression_statement "iVar9 = *(int *)(puVar22 + -0x1a4);" (assignment_expression "iVar9 = *(int *)(puVar22 + -0x1a4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar22 + -0x1a4)" (* "*") (cast_expression "(int *)(puVar22 + -0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + -0x1a4)" (( "(") (binary_expression "puVar22 + -0x1a4" (identifier "puVar22") (+ "+") (number_literal "-0x1a4")) () ")"))))) (; ";"))) (expression_statement "pcVar25 = *(code **)(iVar8 + -0x7df0);" (assignment_expression "pcVar25 = *(code **)(iVar8 + -0x7df0)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(iVar8 + -0x7df0)" (* "*") (cast_expression "(code **)(iVar8 + -0x7df0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + -0x7df0)" (( "(") (binary_expression "iVar8 + -0x7df0" (identifier "iVar8") (+ "+") (number_literal "-0x7df0")) () ")"))))) (; ";")) (if_statement "if (iVar9 == *piVar5) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(iVar9 == *piVar5)" (( "(") (binary_expression "iVar9 == *piVar5" (identifier "iVar9") (== "==") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "pcVar26 = rpl_freopen;" (assignment_expression "pcVar26 = rpl_freopen" (identifier "pcVar26") (= "=") (identifier "rpl_freopen")) (; ";")) (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar20 = *(code **)(pcVar25 + 0x15a74);" (assignment_expression "pcVar20 = *(code **)(pcVar25 + 0x15a74)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar25 + 0x15a74)" (* "*") (cast_expression "(code **)(pcVar25 + 0x15a74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar25 + 0x15a74)" (( "(") (binary_expression "pcVar25 + 0x15a74" (identifier "pcVar25") (+ "+") (number_literal "0x15a74")) () ")"))))) (; ";")) (expression_statement "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;" (assignment_expression "*(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0" (pointer_expression "*(code **)(puVar17 + -0x20)" (* "*") (cast_expression "(code **)(puVar17 + -0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (binary_expression "pcVar25 + 0x1d8b0" (identifier "pcVar25") (+ "+") (number_literal "0x1d8b0"))) (; ";")) (expression_statement "*(byte **)(puVar17 + -0xc) = pbVar11;" (assignment_expression "*(byte **)(puVar17 + -0xc) = pbVar11" (pointer_expression "*(byte **)(puVar17 + -0xc)" (* "*") (cast_expression "(byte **)(puVar17 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0xc)" (( "(") (binary_expression "puVar17 + -0xc" (identifier "puVar17") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "*(int **)(puVar17 + -0x14) = piVar5;" (assignment_expression "*(int **)(puVar17 + -0x14) = piVar5" (pointer_expression "*(int **)(puVar17 + -0x14)" (* "*") (cast_expression "(int **)(puVar17 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x14)" (( "(") (binary_expression "puVar17 + -0x14" (identifier "puVar17") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "*(uint *)(puVar17 + -0x18) = uVar3;" (assignment_expression "*(uint *)(puVar17 + -0x18) = uVar3" (pointer_expression "*(uint *)(puVar17 + -0x18)" (* "*") (cast_expression "(uint *)(puVar17 + -0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x18)" (( "(") (binary_expression "puVar17 + -0x18" (identifier "puVar17") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(code **)(puVar17 + -4) = pcVar26;" (assignment_expression "*(code **)(puVar17 + -4) = pcVar26" (pointer_expression "*(code **)(puVar17 + -4)" (* "*") (cast_expression "(code **)(puVar17 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -4)" (( "(") (binary_expression "puVar17 + -4" (identifier "puVar17") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar26")) (; ";")) (expression_statement "*(byte **)(puVar17 + -8) = param_3;" (assignment_expression "*(byte **)(puVar17 + -8) = param_3" (pointer_expression "*(byte **)(puVar17 + -8)" (* "*") (cast_expression "(byte **)(puVar17 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -8)" (( "(") (binary_expression "puVar17 + -8" (identifier "puVar17") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(byte **)(puVar17 + -0x10) = pbVar18;" (assignment_expression "*(byte **)(puVar17 + -0x10) = pbVar18" (pointer_expression "*(byte **)(puVar17 + -0x10)" (* "*") (cast_expression "(byte **)(puVar17 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + -0x10)" (( "(") (binary_expression "puVar17 + -0x10" (identifier "puVar17") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "uVar3 = (*pcVar20)();" (assignment_expression "uVar3 = (*pcVar20)()" (identifier "uVar3") (= "=") (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uVar3 != 0) && (iVar9 != 0)) {\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((uVar3 != 0) && (iVar9 != 0))" (( "(") (binary_expression "(uVar3 != 0) && (iVar9 != 0)" (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);\n    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);\n    if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);" (assignment_expression "iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e68)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e68" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7e68")) () ")"))))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7da8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7da8)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7da8" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7da8")) () ")"))))) () ")")) (argument_list "(iVar8,iVar8)" (( "(") (identifier "iVar8") (, ",") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar6 < 0) {\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();\n      if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }\n    }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();" (assignment_expression "piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e60)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e60" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7e60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar5 == 9) {\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" (if "if") (parenthesized_expression "(*piVar5 == 9)" (( "(") (binary_expression "*piVar5 == 9" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (== "==") (number_literal "9")) () ")")) (compound_statement "{\n        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);\n        iVar21 = *(int *)(puVar17 + -0x20);\n        if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }\n                    \n                    \n        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);\n        return uVar3;\n      }" ({ "{") (expression_statement "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);" (assignment_expression "iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))\n                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7e4c)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7e4c" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7e4c")) () ")"))))) () ")")) (argument_list "(*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000)" (( "(") (binary_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24" (pointer_expression "*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" (* "*") (cast_expression "(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7fc8)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7fc8" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "-0x2e24")) (, ",") (number_literal "0x80000") () ")")))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (if_statement "if (iVar8 != iVar6) {\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" (if "if") (parenthesized_expression "(iVar8 != iVar6)" (( "(") (binary_expression "iVar8 != iVar6" (identifier "iVar8") (!= "!=") (identifier "iVar6")) () ")")) (compound_statement "{\n          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);\n          if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }\n          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();\n          iVar21 = *(int *)(puVar17 + -0x20);\n        }" ({ "{") (expression_statement "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);" (assignment_expression "iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar21 + -0x7da8))(iVar6,iVar8)" (parenthesized_expression "(**(code **)(iVar21 + -0x7da8))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7da8)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7da8)" (* "*") (cast_expression "(code **)(iVar21 + -0x7da8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7da8)" (( "(") (binary_expression "iVar21 + -0x7da8" (identifier "iVar21") (+ "+") (number_literal "-0x7da8")) () ")"))))) () ")")) (argument_list "(iVar6,iVar8)" (( "(") (identifier "iVar6") (, ",") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar8 < 0) {\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);\n            return uVar3;\n          }" ({ "{") (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6)" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7ec0")) () ")"))))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();" (call_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))()" (parenthesized_expression "(**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (* "*") (cast_expression "(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar17 + -0x20) + -0x7ec0)" (( "(") (binary_expression "*(int *)(puVar17 + -0x20) + -0x7ec0" (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")")))) (+ "+") (number_literal "-0x7ec0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar21 = *(int *)(puVar17 + -0x20);" (assignment_expression "iVar21 = *(int *)(puVar17 + -0x20)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(puVar17 + -0x20)" (* "*") (cast_expression "(int *)(puVar17 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + -0x20)" (( "(") (binary_expression "puVar17 + -0x20" (identifier "puVar17") (+ "+") (number_literal "-0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);" (assignment_expression "uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3)" (parenthesized_expression "(**(code **)(iVar21 + -0x7e3c))" (( "(") (pointer_expression "**(code **)(iVar21 + -0x7e3c)" (* "*") (pointer_expression "*(code **)(iVar21 + -0x7e3c)" (* "*") (cast_expression "(code **)(iVar21 + -0x7e3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + -0x7e3c)" (( "(") (binary_expression "iVar21 + -0x7e3c" (identifier "iVar21") (+ "+") (number_literal "-0x7e3c")) () ")"))))) () ")")) (argument_list "(iVar9,pbVar10,uVar3)" (( "(") (identifier "iVar9") (, ",") (identifier "pbVar10") (, ",") (identifier "uVar3") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (} "}"))) (} "}"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

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

{
  type_2 *puVar1;
  type_2 *var_19;
  type_3 var_9;
  type_4 var_7;
  type_5 *var_29;
  type_6 *puVar5;
  int *piVar6;
  int var_30;
  int var_2;
  int var_16;
  int var_23;
  type_4 *var_28;
  type_4 *var_10;
  type_6 uVar14;
  type_7 *ppVar15;
  type_5 *puVar16;
  type_3 var_15;
  type_4 *var_18;
  type_4 *var_8;
  type_2 *unaff_s3;
  int var_11;
  type_5 *puVar19;
  type_8 *var_24;
  type_4 *unaff_s6;
  type_4 *var_6;
  type_2 *var_5;
  type_9 *pcVar22;
  int var_31;
  type_5 *var_13;
  type_5 *puVar25;
  type_4 *var_20;
  type_9 *var_22;
  type_9 *pcVar28;
  type_5 auStack_68 [24];
  type_4 *var_12;
  type_7 *local_34;
  type_7 *var_14;
  type_4 *var_17;
  
  puVar1 = PTR___stack_chk_guard_0002f30c;
  var_13 = auStack_68;
  var_6 = (type_4 *)(var_1 + 1);
  var_14 = (type_7 *)0x0;
  var_17 = *(type_4 **)PTR___stack_chk_guard_0002f30c;
  var_28 = (type_4 *)var_1;
  var_10 = (type_4 *)var_21;
  var_12 = (type_4 *)(*(type_9 *)PTR_strlen_0002f29c)(var_1);
  var_5 = PTR___progname_0002f108;
  var_2 = (int)var_1[1];
  if (var_2 != 0) {
    var_11 = 0;
    var_15 = (type_3)(var_3 - 0x3fU < 2);
    var_19 = var_4 + -0x231c;
    local_34 = (type_7 *)&var_14;
    var_29 = auStack_68;
    unaff_s6 = var_6;
    do {
      while (var_13 = var_29, unaff_s3 = var_5, var_2 == 0x5b) {
        if (*(int *)(var_5 + -0xb20) == 0) {
          var_2 = (*(type_9 *)PTR_getenv_0002f2c0)(var_19);
          uVar14 = 0xffffffff;
          if (var_2 != 0) {
            uVar14 = 1;
          }
          *(type_6 *)(var_5 + -0xb20) = uVar14;
        }
        var_7 = var_6[1];
        var_8 = var_6 + 1;
        if ((var_7 == 0x21) || ((*(int *)(var_5 + -0xb20) < 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_28 = (type_4 *)0x5d;
        while (var_6 = var_8 + 1, var_7 != 0x5d) {
          if (var_7 == 0) goto LAB_000182c4;
          var_8 = var_6;
          var_7 = *var_6;
        }
        var_2 = (int)(char)var_8[1];
joined_r0x00018418:
        var_29 = var_13;
        if (var_2 == 0) goto LAB_000182c4;
      }
      var_28 = &DAT_c0000601;
      var_9 = var_2 - 0x21U & 0xff;
      var_10 = (type_4 *)(type_3)(var_9 < 0x20);
      if (var_10 != (type_4 *)0x0) {
        while ((int)((0xc0000601U >> (var_9 & 0x1f)) << 0x1f) < 0) {
          var_2 = (int)(char)var_6[1];
          if (var_2 != 0x28) goto joined_r0x0001842c;
          var_10 = (type_4 *)0x1;
          var_11 = var_11 + 1;
          var_6 = var_6 + 1;
          var_9 = 7;
        }
        if (var_2 != 0x29) goto LAB_00018428;
        if (var_11 != 0) {
          var_2 = (int)(char)var_6[1];
          var_11 = var_11 + -1;
joined_r0x0001842c:
          var_6 = var_6 + 1;
          goto joined_r0x00018418;
        }
        if (1 < var_3 - 0x3fU) {
          var_12 = var_6 + (1 - (int)unaff_s6);
        }
        if (((type_3)(var_12 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
          var_2 = -(((type_3)(var_12 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
          var_29 = (type_5 *)
                   (*(type_9 *)PTR_mempcpy_0002f2fc)
                             (var_13 + var_2 + 0x1c,unaff_s6,(int)var_6 - (int)unaff_s6);
          *var_29 = 0;
          ((type_7 *)(var_13 + var_2 + 0x18))->next = (type_7 *)0x0;
          local_34->next = (type_7 *)(var_13 + var_2 + 0x18);
          if (var_14 == (type_7 *)0x0) {
            var_2 = (*(type_9 *)PTR___assert_fail_0002f218)
                              (var_4 + -0x22f8,var_4 + -0x230c,0x454,
                               var_4 + -0x1fa0);
            return var_2;
          }
          if (var_6[-1] == 0x29) {
            if (var_3 - 0x21U < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00018524 */
                    /* WARNING: Treating indirect jump as call */
              var_2 = (*(type_9 *)(&_gp + *(int *)(var_4 + (var_3 - 0x21U) * 4 + -0x2110)))()
              ;
              return var_2;
            }
            var_2 = (*(type_9 *)PTR___assert_fail_0002f218)
                              (var_4 + -0x22d4,var_4 + -0x230c,0x4ad,
                               var_4 + -0x1fa0);
            return var_2;
          }
          var_2 = (*(type_9 *)PTR___assert_fail_0002f218)
                            (var_4 + -0x22e8,var_4 + -0x230c,0x455,
                             var_4 + -0x1fa0);
          return var_2;
        }
        break;
      }
      if ((var_2 != 0x7c) || (var_11 != 0)) {
LAB_00018428:
        var_2 = (int)(char)var_6[1];
        goto joined_r0x0001842c;
      }
      var_8 = var_12;
      if (var_15 == 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_16 = -(((type_3)(var_8 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
      puVar25 = var_13 + var_16;
      ppVar15 = (type_7 *)(var_13 + var_16 + 0x18);
      var_29 = (type_5 *)(*(type_9 *)PTR_mempcpy_0002f2fc)(var_13 + var_16 + 0x1c);
      var_2 = (int)(char)var_6[1];
      *var_29 = 0;
      ppVar15->next = (type_7 *)0x0;
      local_34->next = ppVar15;
      var_28 = unaff_s6;
      unaff_s6 = var_18;
      var_6 = var_18;
      var_13 = var_13 + var_16;
      local_34 = ppVar15;
      var_29 = puVar25;
    } while (var_2 != 0);
  }
LAB_000182c4:
  if (var_17 == *(type_4 **)puVar1) {
    return -1;
  }
  var_22 = var_27;
  var_8 = var_17;
  var_5 = PTR___stack_chk_fail_0002f2f0;
  (*(type_9 *)PTR___stack_chk_fail_0002f2f0)();
  var_19 = var_5 + 0x1e840;
  puVar5 = *(type_6 **)(var_5 + 0x16a6c);
  *(type_5 **)(var_13 + -8) = auStack_68;
  *(type_2 **)(var_13 + -0x1c) = unaff_s3;
  *(type_2 **)(var_13 + -0x160) = var_19;
  *(type_9 **)(var_13 + -4) = var_22;
  *(type_4 **)(var_13 + -0xc) = var_6;
  *(type_4 **)(var_13 + -0x10) = unaff_s6;
  *(int *)(var_13 + -0x14) = var_11;
  *(char **)(var_13 + -0x18) = var_21;
  *(type_2 **)(var_13 + -0x20) = puVar1;
  *(type_3 *)(var_13 + -0x24) = var_15;
  *(char **)(var_13 + -0x28) = var_1;
  *(type_6 **)(var_13 + -0x144) = puVar5;
  *(type_4 **)(var_13 + -0x154) = var_8 + 1;
  var_18 = (type_4 *)(type_3)*var_8;
  *(type_6 *)(var_13 + -0x2c) = *puVar5;
  var_2 = *(int *)(var_5 + 0x16878);
  var_6 = var_10;
  var_20 = var_28;
  if (var_18 != (type_4 *)0x0) {
    var_9 = *(type_3 *)(var_13 + 0x10);
    var_15 = 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 + 0x16868);
    *(int *)(var_13 + -0x14c) = var_2 + -0x2090;
    *(int *)(var_13 + -0x138) = *(int *)(var_5 + 0x16878) + -0x7e50;
    *(int *)(var_13 + -0x13c) = *(int *)(var_5 + 0x16878) + -0x231c;
    var_21 = (char *)var_8;
    unaff_s6 = (type_4 *)string_end;
    do {
      var_8 = var_18;
      if (var_1 != (char *)0x0) {
        piVar6 = (int *)(**(type_9 **)(var_19 + -0x7ec4))();
        var_19 = *(type_2 **)(var_13 + -0x160);
        var_8 = (type_4 *)(type_3)*(type_4 *)(*piVar6 + (int)var_18 * 4 + 3);
      }
      if (((type_3)(var_8 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_2 = (*(type_9 *)(var_19 + *(int *)(*(int *)(var_13 + -0x14c) +
                                            ((type_3)(var_8 + -0x21) & 0xff) * 4)))();
        return var_2;
      }
      var_9 = 1;
      var_18 = var_8;
      if (var_20 == var_10) goto LAB_00018b74;
      var_18 = (type_4 *)(type_3)*var_20;
      if (var_1 != (char *)0x0) {
        piVar6 = (int *)(**(type_9 **)(var_19 + -0x7ec4))();
        var_19 = *(type_2 **)(var_13 + -0x160);
        var_18 = *(type_4 **)(*piVar6 + (int)var_18 * 4);
      }
      var_9 = 1;
      unaff_s6 = var_8;
      if (var_18 != var_8) goto LAB_00018b74;
      var_21 = *(char **)(var_13 + -0x154);
      unaff_s6 = (type_4 *)0x0;
      var_18 = (type_4 *)(type_3)(type_4)*var_21;
      var_20 = var_20 + 1;
      *(type_4 **)(var_13 + -0x154) = (type_4 *)var_21 + 1;
    } while (var_18 != (type_4 *)0x0);
  }
  var_9 = 0;
  if (var_20 != var_10) {
    var_21 = (char *)(*(type_3 *)(var_13 + 0x10) & 8);
    if ((type_4 *)var_21 == (type_4 *)0x0) {
      var_9 = 1;
    }
    else {
      var_9 = (type_3)(*var_20 != 0x2f);
    }
  }
LAB_00018b74:
  var_16 = *(int *)(var_13 + -0x2c);
  if (var_16 == **(int **)(var_13 + -0x144)) {
    return var_9;
  }
  var_22 = *(type_9 **)(var_19 + -0x7df0);
  pcVar28 = gnu_fnmatch;
  (*var_22)();
  var_29 = var_13 + -0x1e0;
  pcVar22 = *(type_9 **)(var_22 + 0x15df8);
  *(type_3 *)(var_13 + -0x19c) = var_15;
  piVar6 = *(int **)(var_22 + 0x15e28);
  *(type_4 **)(var_13 + -0x180) = var_20;
  *(type_4 **)(var_13 + -0x198) = var_18;
  *(type_9 **)(var_13 + -0x1c8) = var_22 + 0x1dbfc;
  *(type_9 **)(var_13 + -0x17c) = pcVar28;
  *(int *)(var_13 + -0x184) = var_2;
  *(type_4 **)(var_13 + -0x188) = unaff_s6;
  *(int *)(var_13 + -0x18c) = var_11;
  *(char **)(var_13 + -400) = var_21;
  *(type_4 **)(var_13 + -0x194) = var_10;
  *(char **)(var_13 + -0x1a0) = var_1;
  *(int *)(var_13 + -0x1b4) = var_16;
  *(type_4 **)(var_13 + -0x1b8) = var_28;
  *(int *)(var_13 + -0x1a4) = *piVar6;
  var_2 = (*pcVar22)();
  var_16 = *(int *)(var_13 + -0x1c8);
  if (var_2 != 1) {
    puVar16 = var_13 + -0x1ac;
    var_22 = *(type_9 **)(var_16 + -0x7dac);
    puVar19 = var_13 + -0x1b4;
    *(type_6 *)(var_13 + -0x1ac) = 0;
    *(type_6 *)(var_13 + -0x1a8) = 0;
    var_2 = (*var_22)(0,puVar19,0,puVar16);
    var_10 = (type_4 *)(var_2 + 1);
    var_16 = *(int *)(var_13 + -0x1c8);
    if (var_10 != (type_4 *)0x0) {
      var_2 = (**(type_9 **)(var_16 + -0x7dd8))(puVar16);
      uVar14 = 0x129;
      var_16 = *(int *)(var_13 + -0x1c8);
      if (var_2 == 0) goto LAB_00019800;
      var_8 = var_13 + -0x1b8;
      var_28 = var_8;
      var_21 = (char *)(**(type_9 **)(var_16 + -0x7dac))(0,var_8,0,puVar16);
      var_18 = (type_4 *)var_21 + 1;
      var_16 = *(int *)(var_13 + -0x1c8);
      if (var_18 != (type_4 *)0x0) {
        var_2 = (**(type_9 **)(var_16 + -0x7dd8))(puVar16);
        var_16 = *(int *)(var_13 + -0x1c8);
        if (var_2 == 0) {
          uVar14 = 0x12d;
          goto LAB_00019800;
        }
        var_20 = var_10 + (int)var_18;
        if ((var_10 <= var_20) && (var_20 < (type_4 *)0x40000000)) {
          if (var_20 < (type_4 *)0x7d0) {
            var_23 = -((int)var_20 * 4 + 7U & 0xfffffff8);
            var_24 = (type_8 *)(var_13 + var_23 + -0x1c8);
            var_20 = (type_4 *)(var_24 + (int)var_10);
            (**(type_9 **)(var_16 + -0x7dac))(var_24,puVar19,var_10,puVar16);
            var_2 = (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7dd8))(puVar16);
            var_16 = *(int *)(var_13 + -0x1c8);
            if (var_2 == 0) {
LAB_00019820:
              do {
                uVar14 = 0x147;
LAB_00019800:
                (**(type_9 **)(var_16 + -0x7ec8))
                          (*(int *)(var_16 + -0x7fc8) + -0x229c,*(int *)(var_16 + -0x7fc8) + -0x22ac
                           ,uVar14,*(int *)(var_16 + -0x7fc8) + -0x1f88);
              } while( true );
            }
            (**(type_9 **)(var_16 + -0x7dac))(var_20,var_8,var_18,puVar16);
            *(type_4 **)(var_13 + var_23 + -0x1d0) = var_6;
            var_28 = var_20;
            var_2 = var_25(var_24,(type_8 *)var_20,
                                      (type_8 *)(var_20 + (int)var_21 * 4),
                                      var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),
                                      *(int *)(var_13 + var_23 + -0x1d0));
            var_16 = *(int *)(var_13 + -0x1c8);
            var_10 = var_20;
            var_29 = var_13 + var_23 + -0x1e0;
            goto LAB_00019590;
          }
          var_2 = (**(type_9 **)(var_16 + -0x7e28))();
          var_16 = *(int *)(var_13 + -0x1c8);
          if (var_2 != 0) {
            var_22 = *(type_9 **)(var_16 + -0x7dac);
            *(int *)(var_13 + -0x1bc) = var_2;
            var_20 = (type_4 *)(var_2 + (int)var_10 * 4);
            (*var_22)(var_2,puVar19,var_10,puVar16);
            var_2 = (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7dd8))(puVar16);
            var_16 = *(int *)(var_13 + -0x1c8);
            if (var_2 == 0) goto LAB_00019820;
            var_22 = *(type_9 **)(var_16 + -0x7dac);
            *(type_6 *)(var_13 + -0x1bc) = *(type_6 *)(var_13 + -0x1bc);
            (*var_22)(var_20,var_8,var_18,puVar16);
            *(type_4 **)(var_13 + -0x1d0) = var_6;
            var_28 = var_20;
            var_2 = var_25(*(type_8 **)(var_13 + -0x1bc),(type_8 *)var_20,
                                      (type_8 *)(var_20 + (int)var_21 * 4),
                                      var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),
                                      *(int *)(var_13 + -0x1d0));
            (**(type_9 **)(*(int *)(var_13 + -0x1c8) + -0x7dc8))(*(type_6 *)(var_13 + -0x1bc));
            var_16 = *(int *)(var_13 + -0x1c8);
            var_10 = var_20;
            var_29 = var_13 + -0x1e0;
            goto LAB_00019590;
          }
        }
        var_2 = -1;
        puVar5 = (type_6 *)(**(type_9 **)(var_16 + -0x7e60))();
        var_16 = *(int *)(var_13 + -0x1c8);
        *puVar5 = 0xc;
        goto LAB_00019590;
      }
    }
  }
  var_28 = *(type_4 **)(var_13 + -0x1b8);
  var_2 = (**(type_9 **)(var_16 + -0x7e44))(var_28);
  *(type_4 **)(var_13 + -0x1d0) = var_6;
  var_2 = var_27(*(char **)(var_13 + -0x1b4),(char *)var_28,(char *)(var_28 + var_2),
                           var_26((type_3)((int)var_6 << 0x1d) >> 0x1f,0),*(int *)(var_13 + -0x1d0))
  ;
  var_16 = *(int *)(var_13 + -0x1c8);
  var_29 = var_13 + -0x1e0;
LAB_00019590:
  var_23 = *(int *)(var_13 + -0x1a4);
  var_22 = *(type_9 **)(var_16 + -0x7df0);
  if (var_23 == *piVar6) {
    return var_2;
  }
  pcVar28 = rpl_freopen;
  (*var_22)();
  pcVar22 = *(type_9 **)(var_22 + 0x15a74);
  *(type_9 **)(var_29 + -0x20) = var_22 + 0x1d8b0;
  *(type_4 **)(var_29 + -0xc) = var_10;
  *(int **)(var_29 + -0x14) = piVar6;
  *(int *)(var_29 + -0x18) = var_2;
  *(type_9 **)(var_29 + -4) = pcVar28;
  *(char **)(var_29 + -8) = var_21;
  *(type_4 **)(var_29 + -0x10) = var_6;
  var_2 = (*pcVar22)();
  if ((var_2 != 0) && (var_23 != 0)) {
    var_16 = (**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7e68))(var_2);
    var_30 = (**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7da8))(var_16,var_16);
    if (var_30 < 0) {
      piVar6 = (int *)(**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7e60))();
      if (*piVar6 == 9) {
        var_30 = (**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7e4c))
                          (*(int *)(*(int *)(var_29 + -0x20) + -0x7fc8) + -0x2e24,0x80000);
        var_31 = *(int *)(var_29 + -0x20);
        if (var_16 != var_30) {
          var_16 = (**(type_9 **)(var_31 + -0x7da8))(var_30,var_16);
          if (var_16 < 0) {
            (**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7ec0))(var_30);
            return var_2;
          }
          (**(type_9 **)(*(int *)(var_29 + -0x20) + -0x7ec0))();
          var_31 = *(int *)(var_29 + -0x20);
        }
                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        var_2 = (**(type_9 **)(var_31 + -0x7e3c))(var_23,var_28,var_2);
        return var_2;
      }
    }
  }
  return var_2;
}


(translation_unit (function_definition type: (type_identifier) 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: (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: (primitive_type) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (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: (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: (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: (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))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) body: (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)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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: (number_literal))) consequence: (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)))))) (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))))) (goto_statement label: (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: (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: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) (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 (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: (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)))) (break_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: (number_literal))))) consequence: (compound_statement (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))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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)))) 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 (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: (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: (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: (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))) (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: (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: (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: (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: (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: (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: (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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 (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (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: (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: (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: (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: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (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)))) (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: (pointer_expression argument: (cast_expression 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: (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)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))) (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: (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: (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)))) (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: (pointer_expression argument: (cast_expression 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: (pointer_expression argument: (cast_expression 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: (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: (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)) 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: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (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: (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: (pointer_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: (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) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_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 (binary_expression left: (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: (number_literal))))) right: (number_literal)) (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (pointer_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)))) (return_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: (pointer_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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier))))) (return_statement (identifier)))))))) (return_statement (identifier)))))

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

{
  undefined *puVar1;
  undefined *puVar2;
  uint uVar3;
  byte bVar7;
  undefined4 *puVar4;
  int *piVar5;
  int iVar6;
  int iVar8;
  int iVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 uVar12;
  undefined1 *puVar13;
  uint unaff_s1;
  byte *pbVar14;
  byte *pbVar15;
  undefined *unaff_s3;
  int unaff_s5;
  undefined1 *puVar16;
  undefined1 *puVar17;
  byte *unaff_s6;
  byte *pbVar18;
  undefined *puVar19;
  code *pcVar20;
  int iVar21;
  undefined1 *puVar22;
  undefined1 *puVar23;
  byte *pbVar24;
  code *pcVar25;
  code *pcVar26;
  undefined1 auStack_68 [24];
  byte *local_44;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar1 = PTR___stack_chk_guard_0002f30c;
  puVar22 = auStack_68;
  pbVar18 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_0002f30c;
  pbVar10 = param_2;
  pbVar11 = param_3;
  local_44 = (byte *)(*(code *)PTR_strlen_0002f29c)(param_2);
  puVar19 = PTR___progname_0002f108;
  iVar8 = (int)(char)param_2[1];
  if (iVar8 != 0) {
    unaff_s5 = 0;
    unaff_s1 = (uint)(param_1 - 0x3fU < 2);
    puVar2 = PTR_DAT_0002f118 + -0x231c;
    local_34 = &local_30;
    puVar17 = auStack_68;
    unaff_s6 = pbVar18;
    do {
      while (puVar22 = puVar17, unaff_s3 = puVar19, iVar8 == 0x5b) {
        if (*(int *)(puVar19 + -0xb20) == 0) {
          iVar8 = (*(code *)PTR_getenv_0002f2c0)(puVar2);
          uVar12 = 0xffffffff;
          if (iVar8 != 0) {
            uVar12 = 1;
          }
          *(undefined4 *)(puVar19 + -0xb20) = uVar12;
        }
        bVar7 = pbVar18[1];
        pbVar15 = pbVar18 + 1;
        if ((bVar7 == 0x21) || ((*(int *)(puVar19 + -0xb20) < 0 && (bVar7 == 0x5e)))) {
          bVar7 = pbVar18[2];
          pbVar15 = pbVar18 + 2;
        }
        if (bVar7 == 0x5d) {
          bVar7 = pbVar15[1];
          pbVar15 = pbVar15 + 1;
        }
        pbVar10 = (byte *)0x5d;
        while (pbVar18 = pbVar15 + 1, bVar7 != 0x5d) {
          if (bVar7 == 0) goto LAB_000182c4;
          pbVar15 = pbVar18;
          bVar7 = *pbVar18;
        }
        iVar8 = (int)(char)pbVar15[1];
joined_r0x00018418:
        puVar17 = puVar22;
        if (iVar8 == 0) goto LAB_000182c4;
      }
      pbVar10 = &DAT_c0000601;
      uVar3 = iVar8 - 0x21U & 0xff;
      pbVar11 = (byte *)(uint)(uVar3 < 0x20);
      if (pbVar11 != (byte *)0x0) {
        while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
          iVar8 = (int)(char)pbVar18[1];
          if (iVar8 != 0x28) goto joined_r0x0001842c;
          pbVar11 = (byte *)0x1;
          unaff_s5 = unaff_s5 + 1;
          pbVar18 = pbVar18 + 1;
          uVar3 = 7;
        }
        if (iVar8 != 0x29) goto LAB_00018428;
        if (unaff_s5 != 0) {
          iVar8 = (int)(char)pbVar18[1];
          unaff_s5 = unaff_s5 + -1;
joined_r0x0001842c:
          pbVar18 = pbVar18 + 1;
          goto joined_r0x00018418;
        }
        if (1 < param_1 - 0x3fU) {
          local_44 = pbVar18 + (1 - (int)unaff_s6);
        }
        if (((uint)(local_44 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
          iVar8 = -(((uint)(local_44 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
          puVar17 = (undefined1 *)
                    (*(code *)PTR_mempcpy_0002f2fc)
                              (puVar22 + iVar8 + 0x1c,unaff_s6,(int)pbVar18 - (int)unaff_s6);
          *puVar17 = 0;
          *(undefined4 *)(puVar22 + iVar8 + 0x18) = 0;
          *local_34 = (int)(puVar22 + iVar8 + 0x18);
          if (local_30 == 0) {
            uVar3 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22f8,PTR_DAT_0002f118 + -0x230c,0x454,
                               PTR_DAT_0002f118 + -0x1fa0);
            return uVar3;
          }
          if (pbVar18[-1] == 0x29) {
            if (param_1 - 0x21U < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00018524 */
                    /* WARNING: Treating indirect jump as call */
              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_0002f118 +
                                                  (param_1 - 0x21U) * 4 + -0x2110)))();
              return uVar3;
            }
            uVar3 = (*(code *)PTR___assert_fail_0002f218)
                              (PTR_DAT_0002f118 + -0x22d4,PTR_DAT_0002f118 + -0x230c,0x4ad,
                               PTR_DAT_0002f118 + -0x1fa0);
            return uVar3;
          }
          uVar3 = (*(code *)PTR___assert_fail_0002f218)
                            (PTR_DAT_0002f118 + -0x22e8,PTR_DAT_0002f118 + -0x230c,0x455,
                             PTR_DAT_0002f118 + -0x1fa0);
          return uVar3;
        }
        break;
      }
      if ((iVar8 != 0x7c) || (unaff_s5 != 0)) {
LAB_00018428:
        iVar8 = (int)(char)pbVar18[1];
        goto joined_r0x0001842c;
      }
      pbVar15 = local_44;
      if (unaff_s1 == 0) {
        pbVar15 = pbVar18 + (1 - (int)unaff_s6);
      }
      if (0x1f3b < ((uint)(pbVar15 + 7) & 0xfffffffc) - 4) break;
      pbVar11 = pbVar18 + -(int)unaff_s6;
      pbVar14 = pbVar18 + 1;
      iVar9 = -(((uint)(pbVar15 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
      puVar23 = puVar22 + iVar9;
      piVar5 = (int *)(puVar22 + iVar9 + 0x18);
      puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_0002f2fc)(puVar22 + iVar9 + 0x1c);
      iVar8 = (int)(char)pbVar18[1];
      *puVar17 = 0;
      *piVar5 = 0;
      *local_34 = (int)piVar5;
      pbVar10 = unaff_s6;
      unaff_s6 = pbVar14;
      pbVar18 = pbVar14;
      puVar22 = puVar22 + iVar9;
      local_34 = piVar5;
      puVar17 = puVar23;
    } while (iVar8 != 0);
  }
LAB_000182c4:
  if (local_2c == *(byte **)puVar1) {
    return 0xffffffff;
  }
  pcVar25 = FUN_000188a0;
  pbVar15 = local_2c;
  puVar19 = PTR___stack_chk_fail_0002f2f0;
  (*(code *)PTR___stack_chk_fail_0002f2f0)();
  puVar2 = puVar19 + 0x1e840;
  puVar4 = *(undefined4 **)(puVar19 + 0x16a6c);
  *(undefined1 **)(puVar22 + -8) = auStack_68;
  *(undefined **)(puVar22 + -0x1c) = unaff_s3;
  *(undefined **)(puVar22 + -0x160) = puVar2;
  *(code **)(puVar22 + -4) = pcVar25;
  *(byte **)(puVar22 + -0xc) = pbVar18;
  *(byte **)(puVar22 + -0x10) = unaff_s6;
  *(int *)(puVar22 + -0x14) = unaff_s5;
  *(byte **)(puVar22 + -0x18) = param_3;
  *(undefined **)(puVar22 + -0x20) = puVar1;
  *(uint *)(puVar22 + -0x24) = unaff_s1;
  *(byte **)(puVar22 + -0x28) = param_2;
  *(undefined4 **)(puVar22 + -0x144) = puVar4;
  *(byte **)(puVar22 + -0x154) = pbVar15 + 1;
  pbVar14 = (byte *)(uint)*pbVar15;
  *(undefined4 *)(puVar22 + -0x2c) = *puVar4;
  iVar8 = *(int *)(puVar19 + 0x16878);
  pbVar18 = pbVar11;
  pbVar24 = pbVar10;
  if (pbVar14 != (byte *)0x0) {
    uVar3 = *(uint *)(puVar22 + 0x10);
    unaff_s1 = uVar3 & 2;
    param_2 = (byte *)(uVar3 & 0x10);
    *(uint *)(puVar22 + -0x140) = uVar3 & 5;
    *(undefined4 *)(puVar22 + -0x148) = *(undefined4 *)(puVar19 + 0x16868);
    *(int *)(puVar22 + -0x14c) = iVar8 + -0x2090;
    *(int *)(puVar22 + -0x138) = *(int *)(puVar19 + 0x16878) + -0x7e50;
    *(int *)(puVar22 + -0x13c) = *(int *)(puVar19 + 0x16878) + -0x231c;
    param_3 = pbVar15;
    unaff_s6 = param_4;
    do {
      pbVar15 = pbVar14;
      if (param_2 != (byte *)0x0) {
        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar22 + -0x160);
        pbVar15 = (byte *)(uint)*(byte *)(*piVar5 + (int)pbVar14 * 4 + 3);
      }
      if (((uint)(pbVar15 + -0x21) & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00018994. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(puVar22 + -0x14c) +
                                            ((uint)(pbVar15 + -0x21) & 0xff) * 4)))();
        return uVar3;
      }
      uVar3 = 1;
      pbVar14 = pbVar15;
      if (pbVar24 == pbVar11) goto LAB_00018b74;
      pbVar14 = (byte *)(uint)*pbVar24;
      if (param_2 != (byte *)0x0) {
        piVar5 = (int *)(**(code **)(puVar2 + -0x7ec4))();
        puVar2 = *(undefined **)(puVar22 + -0x160);
        pbVar14 = *(byte **)(*piVar5 + (int)pbVar14 * 4);
      }
      uVar3 = 1;
      unaff_s6 = pbVar15;
      if (pbVar14 != pbVar15) goto LAB_00018b74;
      param_3 = *(byte **)(puVar22 + -0x154);
      unaff_s6 = (byte *)0x0;
      pbVar14 = (byte *)(uint)*param_3;
      pbVar24 = pbVar24 + 1;
      *(byte **)(puVar22 + -0x154) = param_3 + 1;
    } while (pbVar14 != (byte *)0x0);
  }
  uVar3 = 0;
  if (pbVar24 != pbVar11) {
    param_3 = (byte *)(*(uint *)(puVar22 + 0x10) & 8);
    if (param_3 == (byte *)0x0) {
      uVar3 = 1;
    }
    else {
      uVar3 = (uint)(*pbVar24 != 0x2f);
    }
  }
LAB_00018b74:
  iVar9 = *(int *)(puVar22 + -0x2c);
  if (iVar9 == **(int **)(puVar22 + -0x144)) {
    return uVar3;
  }
  pcVar25 = *(code **)(puVar2 + -0x7df0);
  pcVar26 = gnu_fnmatch;
  (*pcVar25)();
  puVar17 = puVar22 + -0x1e0;
  pcVar20 = *(code **)(pcVar25 + 0x15df8);
  *(uint *)(puVar22 + -0x19c) = unaff_s1;
  piVar5 = *(int **)(pcVar25 + 0x15e28);
  *(byte **)(puVar22 + -0x180) = pbVar24;
  *(byte **)(puVar22 + -0x198) = pbVar14;
  *(code **)(puVar22 + -0x1c8) = pcVar25 + 0x1dbfc;
  *(code **)(puVar22 + -0x17c) = pcVar26;
  *(int *)(puVar22 + -0x184) = iVar8;
  *(byte **)(puVar22 + -0x188) = unaff_s6;
  *(int *)(puVar22 + -0x18c) = unaff_s5;
  *(byte **)(puVar22 + -400) = param_3;
  *(byte **)(puVar22 + -0x194) = pbVar11;
  *(byte **)(puVar22 + -0x1a0) = param_2;
  *(int *)(puVar22 + -0x1b4) = iVar9;
  *(byte **)(puVar22 + -0x1b8) = pbVar10;
  *(int *)(puVar22 + -0x1a4) = *piVar5;
  iVar8 = (*pcVar20)();
  iVar9 = *(int *)(puVar22 + -0x1c8);
  if (iVar8 != 1) {
    puVar13 = puVar22 + -0x1ac;
    pcVar25 = *(code **)(iVar9 + -0x7dac);
    puVar16 = puVar22 + -0x1b4;
    *(undefined4 *)(puVar22 + -0x1ac) = 0;
    *(undefined4 *)(puVar22 + -0x1a8) = 0;
    iVar8 = (*pcVar25)(0,puVar16,0,puVar13);
    pbVar11 = (byte *)(iVar8 + 1);
    iVar9 = *(int *)(puVar22 + -0x1c8);
    if (pbVar11 != (byte *)0x0) {
      iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);
      uVar12 = 0x129;
      iVar9 = *(int *)(puVar22 + -0x1c8);
      if (iVar8 == 0) goto LAB_00019800;
      pbVar15 = puVar22 + -0x1b8;
      pbVar10 = pbVar15;
      param_3 = (byte *)(**(code **)(iVar9 + -0x7dac))(0,pbVar15,0,puVar13);
      pbVar14 = param_3 + 1;
      iVar9 = *(int *)(puVar22 + -0x1c8);
      if (pbVar14 != (byte *)0x0) {
        iVar8 = (**(code **)(iVar9 + -0x7dd8))(puVar13);
        iVar9 = *(int *)(puVar22 + -0x1c8);
        if (iVar8 == 0) {
          uVar12 = 0x12d;
          goto LAB_00019800;
        }
        pbVar24 = pbVar11 + (int)pbVar14;
        if ((pbVar11 <= pbVar24) && (pbVar24 < (byte *)0x40000000)) {
          if (pbVar24 < (byte *)0x7d0) {
            iVar6 = -((int)pbVar24 * 4 + 7U & 0xfffffff8);
            puVar17 = puVar22 + iVar6 + -0x1c8;
            pbVar24 = puVar17 + (int)pbVar11 * 4;
            (**(code **)(iVar9 + -0x7dac))(puVar17,puVar16,pbVar11,puVar13);
            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);
            iVar9 = *(int *)(puVar22 + -0x1c8);
            if (iVar8 == 0) {
LAB_00019820:
              do {
                uVar12 = 0x147;
LAB_00019800:
                (**(code **)(iVar9 + -0x7ec8))
                          (*(int *)(iVar9 + -0x7fc8) + -0x229c,*(int *)(iVar9 + -0x7fc8) + -0x22ac,
                           uVar12,*(int *)(iVar9 + -0x7fc8) + -0x1f88);
              } while( true );
            }
            (**(code **)(iVar9 + -0x7dac))(pbVar24,pbVar15,pbVar14,puVar13);
            *(byte **)(puVar22 + iVar6 + -0x1d0) = pbVar18;
            pbVar10 = pbVar24;
            uVar3 = FUN_000175b0(puVar17,pbVar24,pbVar24 + (int)param_3 * 4,
                                 (uint)((int)pbVar18 << 0x1d) >> 0x1f);
            iVar8 = *(int *)(puVar22 + -0x1c8);
            pbVar11 = pbVar24;
            puVar17 = puVar22 + iVar6 + -0x1e0;
            goto LAB_00019590;
          }
          iVar8 = (**(code **)(iVar9 + -0x7e28))();
          iVar9 = *(int *)(puVar22 + -0x1c8);
          if (iVar8 != 0) {
            pcVar25 = *(code **)(iVar9 + -0x7dac);
            *(int *)(puVar22 + -0x1bc) = iVar8;
            pbVar24 = (byte *)(iVar8 + (int)pbVar11 * 4);
            (*pcVar25)(iVar8,puVar16,pbVar11,puVar13);
            iVar8 = (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dd8))(puVar13);
            iVar9 = *(int *)(puVar22 + -0x1c8);
            if (iVar8 == 0) goto LAB_00019820;
            pcVar25 = *(code **)(iVar9 + -0x7dac);
            *(undefined4 *)(puVar22 + -0x1bc) = *(undefined4 *)(puVar22 + -0x1bc);
            (*pcVar25)(pbVar24,pbVar15,pbVar14,puVar13);
            *(byte **)(puVar22 + -0x1d0) = pbVar18;
            pbVar10 = pbVar24;
            uVar3 = FUN_000175b0(*(undefined4 *)(puVar22 + -0x1bc),pbVar24,
                                 pbVar24 + (int)param_3 * 4,(uint)((int)pbVar18 << 0x1d) >> 0x1f);
            (**(code **)(*(int *)(puVar22 + -0x1c8) + -0x7dc8))(*(undefined4 *)(puVar22 + -0x1bc));
            iVar8 = *(int *)(puVar22 + -0x1c8);
            pbVar11 = pbVar24;
            puVar17 = puVar22 + -0x1e0;
            goto LAB_00019590;
          }
        }
        uVar3 = 0xffffffff;
        puVar4 = (undefined4 *)(**(code **)(iVar9 + -0x7e60))();
        iVar8 = *(int *)(puVar22 + -0x1c8);
        *puVar4 = 0xc;
        goto LAB_00019590;
      }
    }
  }
  pbVar10 = *(byte **)(puVar22 + -0x1b8);
  iVar8 = (**(code **)(iVar9 + -0x7e44))(pbVar10);
  *(byte **)(puVar22 + -0x1d0) = pbVar18;
  uVar3 = FUN_000188a0(*(undefined4 *)(puVar22 + -0x1b4),pbVar10,pbVar10 + iVar8,
                       (uint)((int)pbVar18 << 0x1d) >> 0x1f);
  iVar8 = *(int *)(puVar22 + -0x1c8);
  puVar17 = puVar22 + -0x1e0;
LAB_00019590:
  iVar9 = *(int *)(puVar22 + -0x1a4);
  pcVar25 = *(code **)(iVar8 + -0x7df0);
  if (iVar9 == *piVar5) {
    return uVar3;
  }
  pcVar26 = rpl_freopen;
  (*pcVar25)();
  pcVar20 = *(code **)(pcVar25 + 0x15a74);
  *(code **)(puVar17 + -0x20) = pcVar25 + 0x1d8b0;
  *(byte **)(puVar17 + -0xc) = pbVar11;
  *(int **)(puVar17 + -0x14) = piVar5;
  *(uint *)(puVar17 + -0x18) = uVar3;
  *(code **)(puVar17 + -4) = pcVar26;
  *(byte **)(puVar17 + -8) = param_3;
  *(byte **)(puVar17 + -0x10) = pbVar18;
  uVar3 = (*pcVar20)();
  if ((uVar3 != 0) && (iVar9 != 0)) {
    iVar8 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e68))(uVar3);
    iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7da8))(iVar8,iVar8);
    if (iVar6 < 0) {
      piVar5 = (int *)(**(code **)(*(int *)(puVar17 + -0x20) + -0x7e60))();
      if (*piVar5 == 9) {
        iVar6 = (**(code **)(*(int *)(puVar17 + -0x20) + -0x7e4c))
                          (*(int *)(*(int *)(puVar17 + -0x20) + -0x7fc8) + -0x2e24,0x80000);
        iVar21 = *(int *)(puVar17 + -0x20);
        if (iVar8 != iVar6) {
          iVar8 = (**(code **)(iVar21 + -0x7da8))(iVar6,iVar8);
          if (iVar8 < 0) {
            (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))(iVar6);
            return uVar3;
          }
          (**(code **)(*(int *)(puVar17 + -0x20) + -0x7ec0))();
          iVar21 = *(int *)(puVar17 + -0x20);
        }
                    /* WARNING: Could not recover jumptable at 0x0001995c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (**(code **)(iVar21 + -0x7e3c))(iVar9,pbVar10,uVar3);
        return uVar3;
      }
    }
  }
  return uVar3;
}

