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

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  byte *pbVar4;
  undefined4 *puVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  byte bVar12;
  int *piVar11;
  byte *pbVar13;
  byte *pbVar14;
  undefined4 uVar15;
  patternlist *ppVar16;
  int *string_00;
  undefined1 *puVar17;
  undefined *puVar18;
  uint uVar19;
  undefined *unaff_s4;
  char *unaff_s5;
  undefined1 *puVar20;
  wchar_t *pattern_00;
  byte *unaff_s6;
  byte *pbVar21;
  byte *pbVar22;
  byte *pbVar23;
  int iVar24;
  undefined *puVar25;
  code *pcVar26;
  int iVar27;
  byte *pbVar28;
  undefined1 *puVar29;
  byte *pbVar30;
  code *pcVar31;
  code *pcVar32;
  byte abStack_70 [24];
  byte *local_48;
  patternlist *local_34;
  patternlist *list;
  byte *local_2c;
  
  puVar18 = PTR___stack_chk_guard_000564b4;
  pbVar28 = abStack_70;
  pbVar30 = abStack_70;
  pbVar23 = (byte *)(pattern + 1);
  list = (patternlist *)0x0;
  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;
  pbVar13 = (byte *)pattern;
  pbVar14 = (byte *)string;
  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern);
  puVar25 = PTR_DAT_00056260;
  iVar10 = (int)pattern[1];
  if (iVar10 != 0) {
    unaff_s5 = (char *)0x0;
    puVar2 = PTR_wcrtomb_00056118 + 0x724;
    local_34 = (patternlist *)&list;
    pbVar4 = abStack_70;
    unaff_s6 = pbVar23;
LAB_0003728c:
    do {
      pbVar28 = pbVar4;
      unaff_s4 = puVar25;
      if (iVar10 == 0x5b) {
        pbVar14 = &DAT_00000021;
        if (*(int *)(puVar25 + -0x56a0) == 0) {
          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);
          bVar12 = pbVar23[1];
          if (iVar10 != 0) {
            *(undefined4 *)(puVar25 + -0x56a0) = 1;
            if (bVar12 != 0x21) goto LAB_00037418;
            goto LAB_00037490;
          }
          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;
          if (bVar12 != 0x21) goto LAB_00037408;
          bVar12 = pbVar23[2];
LAB_00037494:
          pbVar4 = pbVar23 + 2;
        }
        else {
          bVar12 = pbVar23[1];
          if (bVar12 == 0x21) {
LAB_00037490:
            bVar12 = pbVar23[2];
            goto LAB_00037494;
          }
          if (*(int *)(puVar25 + -0x56a0) < 0) {
LAB_00037408:
            if (bVar12 == 0x5e) goto LAB_00037490;
          }
LAB_00037418:
          pbVar4 = pbVar23 + 1;
        }
        if (bVar12 == 0x5d) {
          pbVar4 = pbVar4 + 1;
        }
        pbVar13 = (byte *)0x5d;
        while( true ) {
          bVar12 = *pbVar4;
          pbVar23 = pbVar4 + 1;
          if (bVar12 == 0x5d) break;
          pbVar4 = pbVar23;
          if (bVar12 == 0) goto LAB_000372e4;
        }
        iVar10 = (int)(char)pbVar4[1];
      }
      else {
        pbVar13 = &DAT_c0000601;
        uVar3 = iVar10 - 0x21U & 0xff;
        pbVar14 = (byte *)(uint)(uVar3 < 0x20);
        if (pbVar14 == (byte *)0x0) {
          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {
            pbVar4 = local_48;
            if (1 < opt - 0x3fU) {
              pbVar4 = pbVar23 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;
            pbVar14 = pbVar23 + -(int)unaff_s6;
            pbVar21 = pbVar23 + 1;
            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar29 = pbVar28 + iVar27;
            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);
            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);
            iVar10 = (int)(char)pbVar23[1];
            *puVar17 = 0;
            ppVar16->next = (patternlist *)0x0;
            local_34->next = ppVar16;
            pbVar13 = unaff_s6;
            unaff_s6 = pbVar21;
            pbVar23 = pbVar21;
            pbVar28 = pbVar28 + iVar27;
            local_34 = ppVar16;
            pbVar4 = puVar29;
            if (iVar10 == 0) break;
            goto LAB_0003728c;
          }
LAB_00037450:
          iVar10 = (int)(char)pbVar23[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
            iVar10 = (int)(char)pbVar23[1];
            if (iVar10 != 0x28) goto joined_r0x00037454;
            pbVar14 = (byte *)0x1;
            unaff_s5 = unaff_s5 + 1;
            pbVar23 = pbVar23 + 1;
            uVar3 = 7;
          }
          if (iVar10 != 0x29) goto LAB_00037450;
          bVar1 = unaff_s5 == (char *)0x0;
          unaff_s5 = unaff_s5 + -1;
          if (bVar1) {
            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);
            if (unaff_s5 == (char *)0x0) {
              local_48 = pbVar23 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar17 = (undefined1 *)
                        (*(code *)PTR_mempcpy_000564a4)
                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);
              *puVar17 = 0;
              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;
              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);
              if (list == (patternlist *)0x0) {
                iVar10 = (*(code *)PTR___assert_fail_00056330)
                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,
                                    0x454,PTR_wcrtomb_00056118 + 0x5240);
                return iVar10;
              }
              if (pbVar23[-1] != 0x29) {
                iVar10 = (*(code *)PTR___assert_fail_00056330)
                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,
                                    0x455,PTR_wcrtomb_00056118 + 0x5240);
                return iVar10;
              }
              if (0x1f < opt - 0x21U) {
                iVar10 = (*(code *)PTR___assert_fail_00056330)
                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,
                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);
                return iVar10;
              }
                    /* WARNING: Could not emulate address calculation at 0x0003755c */
                    /* WARNING: Treating indirect jump as call */
              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)
                                 ))();
              return iVar10;
            }
            break;
          }
          iVar10 = (int)(char)pbVar23[1];
        }
joined_r0x00037454:
        pbVar23 = pbVar23 + 1;
      }
      pbVar4 = pbVar28;
    } while (iVar10 != 0);
  }
LAB_000372e4:
  if (local_2c == *(byte **)puVar18) {
    return -1;
  }
  pcVar31 = internal_fnmatch;
  pbVar4 = local_2c;
  puVar25 = PTR___stack_chk_fail_00056494;
  (*(code *)PTR___stack_chk_fail_00056494)();
  puVar2 = puVar25 + 0x26808;
  puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc);
  *(byte **)(pbVar28 + -0x10) = unaff_s6;
  *(int *)(pbVar28 + -0x1c) = opt;
  *(undefined **)(pbVar28 + -0x168) = puVar2;
  *(code **)(pbVar28 + -4) = pcVar31;
  *(byte **)(pbVar28 + -8) = abStack_70;
  *(byte **)(pbVar28 + -0xc) = pbVar23;
  *(char **)(pbVar28 + -0x14) = unaff_s5;
  *(undefined **)(pbVar28 + -0x18) = unaff_s4;
  *(char **)(pbVar28 + -0x20) = string;
  *(undefined **)(pbVar28 + -0x24) = puVar18;
  *(char **)(pbVar28 + -0x28) = pattern;
  *(undefined4 **)(pbVar28 + -0x148) = puVar5;
  *(byte **)(pbVar28 + -0x15c) = pbVar4 + 1;
  uVar3 = (uint)*pbVar4;
  *(undefined4 *)(pbVar28 + -0x2c) = *puVar5;
  pbVar21 = pbVar14;
  pbVar22 = pbVar13;
  if (uVar3 != 0) {
    pbVar23 = pbVar28 + -0x130;
    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);
    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);
    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);
    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;
    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;
    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;
    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;
    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;
    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;
    unaff_s5 = string_end;
    pbVar30 = pbVar4;
    do {
      uVar19 = uVar3;
      if (pattern != (char *)0x0) {
        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();
        puVar2 = *(undefined **)(pbVar28 + -0x168);
        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);
      }
      uVar3 = uVar19 - 0x21 & 0xff;
      if (uVar3 < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();
        return iVar10;
      }
      uVar7 = 1;
      uVar3 = uVar19;
      if (pbVar22 == pbVar14) goto LAB_00037c78;
      uVar3 = (uint)*pbVar22;
      if (pattern != (char *)0x0) {
        pcVar31 = *(code **)(puVar2 + -0x7dac);
        *(uint *)(pbVar28 + -0x158) = uVar19;
        piVar6 = (int *)(*pcVar31)();
        puVar2 = *(undefined **)(pbVar28 + -0x168);
        uVar19 = *(uint *)(pbVar28 + -0x158);
        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);
      }
      uVar7 = 1;
      if (uVar3 != uVar19) goto LAB_00037c78;
      pbVar30 = *(byte **)(pbVar28 + -0x15c);
      unaff_s5 = (char *)0x0;
      uVar3 = (uint)*pbVar30;
      pbVar22 = pbVar22 + 1;
      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;
    } while (uVar3 != 0);
  }
  uVar7 = 0;
  if (pbVar22 != pbVar14) {
    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {
      uVar7 = 1;
    }
    else {
      uVar7 = (uint)(*pbVar22 != 0x2f);
    }
  }
LAB_00037c78:
  iVar10 = *(int *)(pbVar28 + -0x2c);
  if (iVar10 == **(int **)(pbVar28 + -0x148)) {
    return uVar7;
  }
  pcVar31 = *(code **)(puVar2 + -0x7c4c);
  pcVar32 = rpl_fnmatch;
  (*pcVar31)();
  pcVar26 = *(code **)(pcVar31 + 0x1dd98);
  *(undefined **)(pbVar28 + -0x1a4) = puVar18;
  piVar6 = *(int **)(pcVar31 + 0x1dddc);
  *(byte **)(pbVar28 + -0x188) = pbVar30;
  *(uint *)(pbVar28 + -0x1a0) = uVar3;
  *(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08;
  *(code **)(pbVar28 + -0x184) = pcVar32;
  *(byte **)(pbVar28 + -0x18c) = pbVar23;
  *(byte **)(pbVar28 + -400) = pbVar22;
  *(char **)(pbVar28 + -0x194) = unaff_s5;
  *(undefined **)(pbVar28 + -0x198) = unaff_s4;
  *(byte **)(pbVar28 + -0x19c) = pbVar14;
  *(char **)(pbVar28 + -0x1a8) = pattern;
  *(int *)(pbVar28 + -0x1bc) = iVar10;
  *(byte **)(pbVar28 + -0x1c0) = pbVar13;
  *(int *)(pbVar28 + -0x1ac) = *piVar6;
  iVar10 = (*pcVar26)();
  iVar27 = *(int *)(pbVar28 + -0x1d0);
  if (iVar10 != 1) {
    puVar17 = pbVar28 + -0x1b4;
    pcVar31 = *(code **)(iVar27 + -0x7bec);
    puVar20 = pbVar28 + -0x1bc;
    *(undefined4 *)(pbVar28 + -0x1b4) = 0;
    *(undefined4 *)(pbVar28 + -0x1b0) = 0;
    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);
    uVar3 = iVar10 + 1;
    iVar27 = *(int *)(pbVar28 + -0x1d0);
    if (uVar3 != 0) {
      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);
      uVar15 = 0x129;
      iVar27 = *(int *)(pbVar28 + -0x1d0);
      if (iVar10 == 0) goto LAB_000389f4;
      piVar11 = (int *)(pbVar28 + -0x1c0);
      string_00 = piVar11;
      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);
      iVar24 = iVar10 + 1;
      iVar27 = *(int *)(pbVar28 + -0x1d0);
      if (iVar24 != 0) {
        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);
        iVar27 = *(int *)(pbVar28 + -0x1d0);
        if (iVar8 == 0) {
          uVar15 = 0x12d;
          goto LAB_000389f4;
        }
        uVar19 = uVar3 + iVar24;
        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {
          if (uVar19 < 2000) {
            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);
            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);
            string_00 = pattern_00 + uVar3;
            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);
            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);
            iVar27 = *(int *)(pbVar28 + -0x1d0);
            if (iVar9 != 0) {
              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);
              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;
              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,
                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),
                                         *(int *)(pbVar28 + iVar8 + -0x1d8));
              iVar27 = *(int *)(pbVar28 + -0x1d0);
              goto LAB_00038784;
            }
          }
          else {
            iVar8 = (**(code **)(iVar27 + -0x7c9c))();
            iVar27 = *(int *)(pbVar28 + -0x1d0);
            if (iVar8 == 0) goto LAB_00038914;
            pcVar31 = *(code **)(iVar27 + -0x7bec);
            *(int *)(pbVar28 + -0x1c4) = iVar8;
            string_00 = (int *)(iVar8 + uVar3 * 4);
            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);
            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);
            iVar27 = *(int *)(pbVar28 + -0x1d0);
            if (iVar8 != 0) {
              pcVar31 = *(code **)(iVar27 + -0x7bec);
              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);
              (*pcVar31)(string_00,piVar11,iVar24,puVar17);
              *(byte **)(pbVar28 + -0x1d8) = pbVar21;
              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,
                                         string_00 + iVar10,
                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),
                                         *(int *)(pbVar28 + -0x1d8));
              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))
              ;
              iVar27 = *(int *)(pbVar28 + -0x1d0);
              goto LAB_00038784;
            }
          }
          uVar15 = 0x147;
LAB_000389f4:
          iVar10 = (**(code **)(iVar27 + -0x7db0))
                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,
                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,
                              *(int *)(iVar27 + -0x7fc8) + 0x5258);
          return iVar10;
        }
LAB_00038914:
        iVar10 = -1;
        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();
        iVar27 = *(int *)(pbVar28 + -0x1d0);
        *puVar5 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  string_00 = *(int **)(pbVar28 + -0x1c0);
  iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00);
  *(byte **)(pbVar28 + -0x1d8) = pbVar21;
  iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,
                            (char *)((int)string_00 + iVar10),
                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)
                           );
  iVar27 = *(int *)(pbVar28 + -0x1d0);
LAB_00038784:
  piVar11 = *(int **)(pbVar28 + -0x1ac);
  if (piVar11 == (int *)*piVar6) {
    return iVar10;
  }
  (**(code **)(iVar27 + -0x7c4c))();
  if ((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])) {
    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);
  }
  return 0;
}



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

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  byte *pbVar4;
  undefined4 *puVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  byte bVar12;
  int *piVar11;
  byte *pbVar13;
  byte *pbVar14;
  undefined4 uVar15;
  int *piVar16;
  undefined1 *puVar17;
  undefined *puVar18;
  uint uVar19;
  undefined *unaff_s4;
  uint unaff_s5;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *unaff_s6;
  byte *pbVar22;
  byte *pbVar23;
  byte *pbVar24;
  int iVar25;
  undefined *puVar26;
  code *pcVar27;
  int iVar28;
  byte *pbVar29;
  undefined1 *puVar30;
  byte *pbVar31;
  code *pcVar32;
  code *pcVar33;
  byte abStack_70 [24];
  byte *local_48;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar18 = PTR___stack_chk_guard_000564b4;
  pbVar29 = abStack_70;
  pbVar31 = abStack_70;
  pbVar24 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;
  pbVar13 = param_2;
  pbVar14 = param_3;
  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);
  puVar26 = PTR_DAT_00056260;
  iVar10 = (int)(char)param_2[1];
  if (iVar10 != 0) {
    unaff_s5 = 0;
    puVar2 = PTR_wcrtomb_00056118 + 0x724;
    local_34 = &local_30;
    pbVar4 = abStack_70;
    unaff_s6 = pbVar24;
LAB_0003728c:
    do {
      pbVar29 = pbVar4;
      unaff_s4 = puVar26;
      if (iVar10 == 0x5b) {
        pbVar14 = &DAT_00000021;
        if (*(int *)(puVar26 + -0x56a0) == 0) {
          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);
          bVar12 = pbVar24[1];
          if (iVar10 != 0) {
            *(undefined4 *)(puVar26 + -0x56a0) = 1;
            if (bVar12 != 0x21) goto LAB_00037418;
            goto LAB_00037490;
          }
          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;
          if (bVar12 != 0x21) goto LAB_00037408;
          bVar12 = pbVar24[2];
LAB_00037494:
          pbVar4 = pbVar24 + 2;
        }
        else {
          bVar12 = pbVar24[1];
          if (bVar12 == 0x21) {
LAB_00037490:
            bVar12 = pbVar24[2];
            goto LAB_00037494;
          }
          if (*(int *)(puVar26 + -0x56a0) < 0) {
LAB_00037408:
            if (bVar12 == 0x5e) goto LAB_00037490;
          }
LAB_00037418:
          pbVar4 = pbVar24 + 1;
        }
        if (bVar12 == 0x5d) {
          pbVar4 = pbVar4 + 1;
        }
        pbVar13 = (byte *)0x5d;
        while( true ) {
          bVar12 = *pbVar4;
          pbVar24 = pbVar4 + 1;
          if (bVar12 == 0x5d) break;
          pbVar4 = pbVar24;
          if (bVar12 == 0) goto LAB_000372e4;
        }
        iVar10 = (int)(char)pbVar4[1];
      }
      else {
        pbVar13 = &DAT_c0000601;
        uVar3 = iVar10 - 0x21U & 0xff;
        pbVar14 = (byte *)(uint)(uVar3 < 0x20);
        if (pbVar14 == (byte *)0x0) {
          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {
            pbVar4 = local_48;
            if (1 < param_1 - 0x3fU) {
              pbVar4 = pbVar24 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;
            pbVar14 = pbVar24 + -(int)unaff_s6;
            pbVar22 = pbVar24 + 1;
            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar30 = pbVar29 + iVar28;
            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);
            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);
            iVar10 = (int)(char)pbVar24[1];
            *puVar17 = 0;
            *piVar6 = 0;
            *local_34 = (int)piVar6;
            pbVar13 = unaff_s6;
            unaff_s6 = pbVar22;
            pbVar24 = pbVar22;
            pbVar29 = pbVar29 + iVar28;
            local_34 = piVar6;
            pbVar4 = puVar30;
            if (iVar10 == 0) break;
            goto LAB_0003728c;
          }
LAB_00037450:
          iVar10 = (int)(char)pbVar24[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
            iVar10 = (int)(char)pbVar24[1];
            if (iVar10 != 0x28) goto joined_r0x00037454;
            pbVar14 = (byte *)0x1;
            unaff_s5 = unaff_s5 + 1;
            pbVar24 = pbVar24 + 1;
            uVar3 = 7;
          }
          if (iVar10 != 0x29) goto LAB_00037450;
          bVar1 = unaff_s5 == 0;
          unaff_s5 = unaff_s5 - 1;
          if (bVar1) {
            unaff_s5 = (uint)(param_1 - 0x3fU < 2);
            if (unaff_s5 == 0) {
              local_48 = pbVar24 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar17 = (undefined1 *)
                        (*(code *)PTR_mempcpy_000564a4)
                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);
              *puVar17 = 0;
              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;
              *local_34 = (int)(pbVar29 + iVar10 + 0x18);
              if (local_30 == 0) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
              if (pbVar24[-1] != 0x29) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
              if (0x1f < param_1 - 0x21U) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
                    /* WARNING: Could not emulate address calculation at 0x0003755c */
                    /* WARNING: Treating indirect jump as call */
              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +
                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();
              return uVar3;
            }
            break;
          }
          iVar10 = (int)(char)pbVar24[1];
        }
joined_r0x00037454:
        pbVar24 = pbVar24 + 1;
      }
      pbVar4 = pbVar29;
    } while (iVar10 != 0);
  }
LAB_000372e4:
  if (local_2c == *(byte **)puVar18) {
    return 0xffffffff;
  }
  pcVar32 = FUN_000378d8;
  pbVar4 = local_2c;
  puVar26 = PTR___stack_chk_fail_00056494;
  (*(code *)PTR___stack_chk_fail_00056494)();
  puVar2 = puVar26 + 0x26808;
  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);
  *(byte **)(pbVar29 + -0x10) = unaff_s6;
  *(int *)(pbVar29 + -0x1c) = param_1;
  *(undefined **)(pbVar29 + -0x168) = puVar2;
  *(code **)(pbVar29 + -4) = pcVar32;
  *(byte **)(pbVar29 + -8) = abStack_70;
  *(byte **)(pbVar29 + -0xc) = pbVar24;
  *(uint *)(pbVar29 + -0x14) = unaff_s5;
  *(undefined **)(pbVar29 + -0x18) = unaff_s4;
  *(byte **)(pbVar29 + -0x20) = param_3;
  *(undefined **)(pbVar29 + -0x24) = puVar18;
  *(byte **)(pbVar29 + -0x28) = param_2;
  *(undefined4 **)(pbVar29 + -0x148) = puVar5;
  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;
  uVar3 = (uint)*pbVar4;
  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;
  pbVar22 = pbVar14;
  pbVar23 = pbVar13;
  if (uVar3 != 0) {
    pbVar24 = pbVar29 + -0x130;
    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);
    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);
    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);
    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;
    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;
    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;
    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;
    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;
    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;
    unaff_s5 = param_4;
    pbVar31 = pbVar4;
    do {
      uVar19 = uVar3;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();
        puVar2 = *(undefined **)(pbVar29 + -0x168);
        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);
      }
      uVar3 = uVar19 - 0x21 & 0xff;
      if (uVar3 < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();
        return uVar3;
      }
      uVar7 = 1;
      uVar3 = uVar19;
      if (pbVar23 == pbVar14) goto LAB_00037c78;
      uVar3 = (uint)*pbVar23;
      if (param_2 != (byte *)0x0) {
        pcVar32 = *(code **)(puVar2 + -0x7dac);
        *(uint *)(pbVar29 + -0x158) = uVar19;
        piVar6 = (int *)(*pcVar32)();
        puVar2 = *(undefined **)(pbVar29 + -0x168);
        uVar19 = *(uint *)(pbVar29 + -0x158);
        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);
      }
      uVar7 = 1;
      if (uVar3 != uVar19) goto LAB_00037c78;
      pbVar31 = *(byte **)(pbVar29 + -0x15c);
      unaff_s5 = 0;
      uVar3 = (uint)*pbVar31;
      pbVar23 = pbVar23 + 1;
      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;
    } while (uVar3 != 0);
  }
  uVar7 = 0;
  if (pbVar23 != pbVar14) {
    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {
      uVar7 = 1;
    }
    else {
      uVar7 = (uint)(*pbVar23 != 0x2f);
    }
  }
LAB_00037c78:
  iVar10 = *(int *)(pbVar29 + -0x2c);
  if (iVar10 == **(int **)(pbVar29 + -0x148)) {
    return uVar7;
  }
  pcVar32 = *(code **)(puVar2 + -0x7c4c);
  pcVar33 = rpl_fnmatch;
  (*pcVar32)();
  pcVar27 = *(code **)(pcVar32 + 0x1dd98);
  *(undefined **)(pbVar29 + -0x1a4) = puVar18;
  piVar6 = *(int **)(pcVar32 + 0x1dddc);
  *(byte **)(pbVar29 + -0x188) = pbVar31;
  *(uint *)(pbVar29 + -0x1a0) = uVar3;
  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;
  *(code **)(pbVar29 + -0x184) = pcVar33;
  *(byte **)(pbVar29 + -0x18c) = pbVar24;
  *(byte **)(pbVar29 + -400) = pbVar23;
  *(uint *)(pbVar29 + -0x194) = unaff_s5;
  *(undefined **)(pbVar29 + -0x198) = unaff_s4;
  *(byte **)(pbVar29 + -0x19c) = pbVar14;
  *(byte **)(pbVar29 + -0x1a8) = param_2;
  *(int *)(pbVar29 + -0x1bc) = iVar10;
  *(byte **)(pbVar29 + -0x1c0) = pbVar13;
  *(int *)(pbVar29 + -0x1ac) = *piVar6;
  iVar10 = (*pcVar27)();
  iVar28 = *(int *)(pbVar29 + -0x1d0);
  if (iVar10 != 1) {
    puVar17 = pbVar29 + -0x1b4;
    pcVar32 = *(code **)(iVar28 + -0x7bec);
    puVar20 = pbVar29 + -0x1bc;
    *(undefined4 *)(pbVar29 + -0x1b4) = 0;
    *(undefined4 *)(pbVar29 + -0x1b0) = 0;
    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);
    uVar3 = iVar10 + 1;
    iVar28 = *(int *)(pbVar29 + -0x1d0);
    if (uVar3 != 0) {
      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);
      uVar15 = 0x129;
      iVar28 = *(int *)(pbVar29 + -0x1d0);
      if (iVar10 == 0) goto LAB_000389f4;
      piVar11 = (int *)(pbVar29 + -0x1c0);
      piVar16 = piVar11;
      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);
      iVar25 = iVar10 + 1;
      iVar28 = *(int *)(pbVar29 + -0x1d0);
      if (iVar25 != 0) {
        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);
        iVar28 = *(int *)(pbVar29 + -0x1d0);
        if (iVar8 == 0) {
          uVar15 = 0x12d;
          goto LAB_000389f4;
        }
        uVar19 = uVar3 + iVar25;
        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {
          if (uVar19 < 2000) {
            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);
            puVar21 = pbVar29 + iVar8 + -0x1d0;
            piVar16 = (int *)(puVar21 + uVar3 * 4);
            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);
            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar9 != 0) {
              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);
              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;
              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,
                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);
              iVar10 = *(int *)(pbVar29 + -0x1d0);
              goto LAB_00038784;
            }
          }
          else {
            iVar8 = (**(code **)(iVar28 + -0x7c9c))();
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar8 == 0) goto LAB_00038914;
            pcVar32 = *(code **)(iVar28 + -0x7bec);
            *(int *)(pbVar29 + -0x1c4) = iVar8;
            piVar16 = (int *)(iVar8 + uVar3 * 4);
            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);
            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar8 != 0) {
              pcVar32 = *(code **)(iVar28 + -0x7bec);
              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);
              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);
              *(byte **)(pbVar29 + -0x1d8) = pbVar22;
              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,
                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);
              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))
              ;
              iVar10 = *(int *)(pbVar29 + -0x1d0);
              goto LAB_00038784;
            }
          }
          uVar15 = 0x147;
LAB_000389f4:
          uVar3 = (**(code **)(iVar28 + -0x7db0))
                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c
                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);
          return uVar3;
        }
LAB_00038914:
        uVar3 = 0xffffffff;
        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();
        iVar10 = *(int *)(pbVar29 + -0x1d0);
        *puVar5 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  piVar16 = *(int **)(pbVar29 + -0x1c0);
  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);
  *(byte **)(pbVar29 + -0x1d8) = pbVar22;
  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,
                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);
  iVar10 = *(int *)(pbVar29 + -0x1d0);
LAB_00038784:
  piVar11 = *(int **)(pbVar29 + -0x1ac);
  if (piVar11 == (int *)*piVar6) {
    return uVar3;
  }
  (**(code **)(iVar10 + -0x7c4c))();
  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {
    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);
  }
  return 0;
}


lui gp,0x2
addiu gp,gp,0x6f0c
addu gp,gp,t9
addiu sp,sp,-0x70
lw t9,-0x7cbc(gp)
sw s8,0x68(sp)
or s8,sp,zero
sw s1,0x4c(sp)
lw s1,-0x7c2c(gp)
lbu v0,0x83(s8)
sw s0,0x48(sp)
or s0,a1,zero
sw s7,0x64(sp)
addiu s7,a1,0x1
sw v0,0x38(s8)
sw s3,0x54(sp)
or s3,a0,zero
sw s2,0x50(sp)
or a0,a1,zero
sw gp,0x18(sp)
or s2,a2,zero
sw ra,0x6c(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw a3,0x30(s8)
sw zero,0x40(s8)
lw v0,0x0(s1)
sw v0,0x44(s8)
jalr t9
_nop
lb a0,0x1(s0)
lw gp,0x18(s8)
beq a0,zero,0x000372e0
_sw v0,0x28(s8)
addiu v0,s3,-0x3f
lw s4,-0x7e80(gp)
or s5,zero,zero
sw v0,0x34(s8)
addiu v0,s8,0x40
or s6,s7,zero
sw v0,0x3c(s8)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x724
sw v0,0x2c(s8)
li v0,0x5b
beq a0,v0,0x000373e8
_lui v0,0xc000
addiu a1,v0,0x601
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
beq a2,zero,0x00037348
_li t2,0x28
srlv v0,a1,v0
ext v0,v0,0x0,0x1
bne v0,zero,0x00037328
_li v0,0x29
bne a0,v0,0x00037450
_nop
beq s5,zero,0x000374c0
_addiu v0,s5,-0x1
lb a0,0x1(s7)
addiu s7,s7,0x1
or s5,v0,zero
bne a0,zero,0x0003728c
_li v0,0x5b
li v0,-0x1
lw a0,0x44(s8)
lw v1,0x0(s1)
bne a0,v1,0x000378d0
_lw t9,-0x7c4c(gp)
or sp,s8,zero
lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lb a0,0x1(s7)
bne a0,t2,0x000372d8
_addiu s7,s7,0x1
addiu v0,a0,-0x21
andi v0,v0,0xff
sltiu a2,v0,0x20
bne a2,zero,0x000372ac
_addiu s5,s5,0x1
li v0,0x7c
bne a0,v0,0x00037450
_nop
bne s5,zero,0x00037450
_lw v0,0x34(s8)
sltiu v0,v0,0x2
bne v0,zero,0x00037370
_lw v0,0x28(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,0x000372e0
_addiu v0,v0,0x7
lw t9,-0x7c3c(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,0x24(s8)
lw gp,0x18(s8)
lw t2,0x24(s8)
lb a0,0x1(s7)
or s7,s6,zero
sb zero,0x0(v0)
lw v0,0x3c(s8)
sw zero,0x0(t2)
sw t2,0x3c(s8)
bne a0,zero,0x00037288
_sw t2,0x0(v0)
b 0x000372e4
_li v0,-0x1
lw a1,-0x56a0(s4)
beq a1,zero,0x00037464
_li a2,0x21
lb a0,0x1(s7)
beq a0,a2,0x00037490
_addiu v0,s7,0x1
bgez a1,0x00037418
_li v1,0x5d
li a1,0x5e
beq a0,a1,0x00037490
_nop
li v1,0x5d
beq a0,v1,0x000374a0
_nop
b 0x00037430
_li a1,0x5d
beq a0,zero,0x000372e0
_or v0,s7,zero
lb a0,0x0(v0)
bne a0,a1,0x00037428
_addiu s7,v0,0x1
lb a0,0x1(v0)
bne a0,zero,0x00037288
_li v0,-0x1
b 0x000372e4
_nop
lb a0,0x1(s7)
bne a0,zero,0x00037288
_addiu s7,s7,0x1
b 0x000372e4
_li v0,-0x1
lw t9,-0x7c94(gp)
jalr t9
_lw a0,0x2c(s8)
li a1,0x21
lw gp,0x18(s8)
beq v0,zero,0x000374a8
_lb a0,0x1(s7)
li v0,0x1
sw v0,-0x56a0(s4)
bne a0,a1,0x00037414
_addiu v0,s7,0x1
lb a0,0x2(s7)
li v1,0x5d
bne a0,v1,0x00037420
_addiu v0,s7,0x2
b 0x00037420
_addiu v0,v0,0x1
li v0,-0x1
sw v0,-0x56a0(s4)
bne a0,a1,0x00037408
_addiu v0,s7,0x1
b 0x00037494
_lb a0,0x2(s7)
lw v0,0x34(s8)
sltiu s5,v0,0x2
bne s5,zero,0x000374d8
_subu v0,s7,s6
addiu v0,v0,0x1
sw v0,0x28(s8)
lw v0,0x28(s8)
li a0,-0x4
addiu v0,v0,0x7
and v0,v0,a0
addiu a0,v0,-0x4
sltiu a0,a0,0x1f3c
beq a0,zero,0x000372e0
_addiu v0,v0,0x7
lw t9,-0x7c3c(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 s5,sp,0x18
lw v1,0x3c(s8)
lw gp,0x18(s8)
sb zero,0x0(v0)
sw zero,0x0(s5)
sw s5,0x0(v1)
lw s5,0x40(s8)
beq s5,zero,0x000378ac
_li v0,0x29
lb a0,-0x1(s7)
bne a0,v0,0x00037888
_addiu s3,s3,-0x21
sltiu v0,s3,0x20
beq v0,zero,0x00037864
_lw v0,-0x7fc8(gp)
sll s3,s3,0x2
addiu v0,v0,0x50d0
addu s3,v0,s3
lw v0,0x0(s3)
addu v0,v0,gp
jr v0
_nop
lw a3,-0x7fc8(gp)
li a2,0x4ad
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7db0(gp)
addiu a3,a3,0x5240
addiu a1,a1,0x4ee0
jalr t9
_addiu a0,a0,0x4f14
lw a3,-0x7fc8(gp)
li a2,0x455
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7db0(gp)
addiu a3,a3,0x5240
addiu a1,a1,0x4ee0
jalr t9
_addiu a0,a0,0x4f00
lw a3,-0x7fc8(gp)
li a2,0x454
lw a1,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7db0(gp)
addiu a3,a3,0x5240
addiu a1,a1,0x4ee0
jalr t9
_addiu a0,a0,0x4ef0
jalr t9
_nop
(translation_unit "uint FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)" identifier (parameter_list "(int param_1,byte *param_2,byte *param_3,uint 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 "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint unaff_s5;" type_identifier identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "byte abStack_70 [24];" type_identifier (array_declarator "abStack_70 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * 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 "puVar18 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar18 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "pbVar29 = abStack_70;" (assignment_expression "pbVar29 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar31 = abStack_70;" (assignment_expression "pbVar31 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar24 = param_2 + 1;" (assignment_expression "pbVar24 = 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_000564b4;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000564b4" * (cast_expression "(byte **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" identifier = identifier) ;) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" identifier = identifier) ;) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_00056424)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_00056424)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar26 = PTR_DAT_00056260;" (assignment_expression "puVar26 = PTR_DAT_00056260" identifier = identifier) ;) (expression_statement "iVar10 = (int)(char)param_2[1];" (assignment_expression "iVar10 = (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 (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = PTR_wcrtomb_00056118 + 0x724;" (assignment_expression "puVar2 = PTR_wcrtomb_00056118 + 0x724" identifier = (binary_expression "PTR_wcrtomb_00056118 + 0x724" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "pbVar4 = abStack_70;" (assignment_expression "pbVar4 = abStack_70" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar24;" (assignment_expression "unaff_s6 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" statement_identifier : (do_statement "do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" do (compound_statement "{\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    }" { (expression_statement "pbVar29 = pbVar4;" (assignment_expression "pbVar29 = pbVar4" identifier = identifier) ;) (expression_statement "unaff_s4 = puVar26;" (assignment_expression "unaff_s4 = puVar26" identifier = identifier) ;) (if_statement "if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" if (parenthesized_expression "(iVar10 == 0x5b)" ( (binary_expression "iVar10 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }" { (expression_statement "pbVar14 = &DAT_00000021;" (assignment_expression "pbVar14 = &DAT_00000021" identifier = (pointer_expression "&DAT_00000021" & identifier)) ;) (if_statement "if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" if (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) == 0)" ( (binary_expression "*(int *)(puVar26 + -0x56a0) == 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" * (cast_expression "(int *)(puVar26 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }" { (expression_statement "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);" (assignment_expression "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0005644c)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0005644c)" ( (pointer_expression "*(code *)PTR_getenv_0005644c" * (cast_expression "(code *)PTR_getenv_0005644c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" identifier = (subscript_expression "pbVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" { (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 1" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037418;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037418;" goto statement_identifier ;)) (goto_statement "goto LAB_00037490;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037408;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037408;" goto statement_identifier ;)) (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" identifier = (subscript_expression "pbVar24[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00037494:\n          pbVar4 = pbVar24 + 2;" statement_identifier : (expression_statement "pbVar4 = pbVar24 + 2;" (assignment_expression "pbVar4 = pbVar24 + 2" identifier = (binary_expression "pbVar24 + 2" identifier + number_literal)) ;)) }) (else_clause "else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" else (compound_statement "{\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" { (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" identifier = (subscript_expression "pbVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" if (parenthesized_expression "(bVar12 == 0x21)" ( (binary_expression "bVar12 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" { (labeled_statement "LAB_00037490:\n            bVar12 = pbVar24[2];" statement_identifier : (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" identifier = (subscript_expression "pbVar24[2]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00037494;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" if (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) < 0)" ( (binary_expression "*(int *)(puVar26 + -0x56a0) < 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" * (cast_expression "(int *)(puVar26 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" { (labeled_statement "LAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;" statement_identifier : (if_statement "if (bVar12 == 0x5e) goto LAB_00037490;" if (parenthesized_expression "(bVar12 == 0x5e)" ( (binary_expression "bVar12 == 0x5e" identifier == number_literal) )) (goto_statement "goto LAB_00037490;" goto statement_identifier ;))) })) (labeled_statement "LAB_00037418:\n          pbVar4 = pbVar24 + 1;" statement_identifier : (expression_statement "pbVar4 = pbVar24 + 1;" (assignment_expression "pbVar4 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;)) }))) (if_statement "if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar4 = pbVar4 + 1;\n        }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar13 = (byte *)0x5d;" (assignment_expression "pbVar13 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" { (expression_statement "bVar12 = *pbVar4;" (assignment_expression "bVar12 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "pbVar24 = pbVar4 + 1;" (assignment_expression "pbVar24 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (if_statement "if (bVar12 == 0x5d) break;" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar4 = pbVar24;" (assignment_expression "pbVar4 = pbVar24" identifier = identifier) ;) (if_statement "if (bVar12 == 0) goto LAB_000372e4;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000372e4;" goto statement_identifier ;)) })) (expression_statement "iVar10 = (int)(char)pbVar4[1];" (assignment_expression "iVar10 = (int)(char)pbVar4[1]" identifier = (cast_expression "(int)(char)pbVar4[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar4[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar4[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" else (compound_statement "{\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" { (expression_statement "pbVar13 = &DAT_c0000601;" (assignment_expression "pbVar13 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar10 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar10 - 0x21U & 0xff" identifier = (binary_expression "iVar10 - 0x21U & 0xff" (binary_expression "iVar10 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar14 = (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 (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }" { (if_statement "if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" if (parenthesized_expression "((iVar10 == 0x7c) && (unaff_s5 == 0))" ( (binary_expression "(iVar10 == 0x7c) && (unaff_s5 == 0)" (parenthesized_expression "(iVar10 == 0x7c)" ( (binary_expression "iVar10 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" { (expression_statement "pbVar4 = local_48;" (assignment_expression "pbVar4 = local_48" identifier = identifier) ;) (if_statement "if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (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              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar4 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "pbVar4 = pbVar24 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar24 + (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)(pbVar4 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar24 + -(int)unaff_s6;" (assignment_expression "pbVar14 = pbVar24 + -(int)unaff_s6" identifier = (binary_expression "pbVar24 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar22 = pbVar24 + 1;" (assignment_expression "pbVar22 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar30 = pbVar29 + iVar28;" (assignment_expression "puVar30 = pbVar29 + iVar28" identifier = (binary_expression "pbVar29 + iVar28" identifier + identifier)) ;) (expression_statement "piVar6 = (int *)(pbVar29 + iVar28 + 0x18);" (assignment_expression "piVar6 = (int *)(pbVar29 + iVar28 + 0x18)" identifier = (cast_expression "(int *)(pbVar29 + iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + iVar28 + 0x18)" ( (binary_expression "pbVar29 + iVar28 + 0x18" (binary_expression "pbVar29 + iVar28" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29 + iVar28 + 0x1c)" ( (binary_expression "pbVar29 + iVar28 + 0x1c" (binary_expression "pbVar29 + iVar28" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar22;" (assignment_expression "unaff_s6 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar22;" (assignment_expression "pbVar24 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar29 + iVar28;" (assignment_expression "pbVar29 = pbVar29 + iVar28" identifier = (binary_expression "pbVar29 + iVar28" identifier + identifier)) ;) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" identifier = identifier) ;) (expression_statement "pbVar4 = puVar30;" (assignment_expression "pbVar4 = puVar30" identifier = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0003728c;" goto statement_identifier ;) })) (labeled_statement "LAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];" statement_identifier : (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 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            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }" { (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar10 != 0x28) goto joined_r0x00037454;" if (parenthesized_expression "(iVar10 != 0x28)" ( (binary_expression "iVar10 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x00037454;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar10 != 0x29) goto LAB_00037450;" if (parenthesized_expression "(iVar10 != 0x29)" ( (binary_expression "iVar10 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00037450;" goto statement_identifier ;)) (expression_statement "bVar1 = unaff_s5 == 0;" (assignment_expression "bVar1 = unaff_s5 == 0" identifier = (binary_expression "unaff_s5 == 0" 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)) ;) (if_statement "if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" { (expression_statement "unaff_s5 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s5 = (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) )))) ;) (if_statement "if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_48 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "local_48 = pbVar24 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar24 + (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_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" if (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" { (expression_statement "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" ( (binary_expression "pbVar29 + iVar10 + 0x1c" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar24 - (int)unaff_s6" (cast_expression "(int)pbVar24" ( (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 *)(pbVar29 + iVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18)" * (cast_expression "(undefined4 *)(pbVar29 + iVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" ( (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(pbVar29 + iVar10 + 0x18);" (assignment_expression "*local_34 = (int)(pbVar29 + iVar10 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(pbVar29 + iVar10 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" ( (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\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_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4ef0" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" if (parenthesized_expression "(pbVar24[-1] != 0x29)" ( (binary_expression "pbVar24[-1] != 0x29" (subscript_expression "pbVar24[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f00" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" if (parenthesized_expression "(0x1f < param_1 - 0x21U)" ( (binary_expression "0x1f < param_1 - 0x21U" number_literal < (binary_expression "param_1 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f14" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) comment comment (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" * (cast_expression "(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" ( (binary_expression "PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0" (binary_expression "PTR_wcrtomb_00056118 +\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 ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) }))) (labeled_statement "joined_r0x00037454:\n        pbVar24 = pbVar24 + 1;" statement_identifier : (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;)) }))) (expression_statement "pbVar4 = pbVar29;" (assignment_expression "pbVar4 = pbVar29" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar18)" ( (binary_expression "local_2c == *(byte **)puVar18" identifier == (pointer_expression "*(byte **)puVar18" * (cast_expression "(byte **)puVar18" ( (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 "pcVar32 = FUN_000378d8;" (assignment_expression "pcVar32 = FUN_000378d8" identifier = identifier) ;) (expression_statement "pbVar4 = local_2c;" (assignment_expression "pbVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_00056494;" (assignment_expression "puVar26 = PTR___stack_chk_fail_00056494" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar26 + 0x26808;" (assignment_expression "puVar2 = puVar26 + 0x26808" identifier = (binary_expression "puVar26 + 0x26808" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc)" identifier = (pointer_expression "*(undefined4 **)(puVar26 + 0x1ebdc)" * (cast_expression "(undefined4 **)(puVar26 + 0x1ebdc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x1ebdc)" ( (binary_expression "puVar26 + 0x1ebdc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar29 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(pbVar29 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(pbVar29 + -0x10)" * (cast_expression "(byte **)(pbVar29 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x10)" ( (binary_expression "pbVar29 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1c) = param_1;" (assignment_expression "*(int *)(pbVar29 + -0x1c) = param_1" (pointer_expression "*(int *)(pbVar29 + -0x1c)" * (cast_expression "(int *)(pbVar29 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c)" ( (binary_expression "pbVar29 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x168) = puVar2;" (assignment_expression "*(undefined **)(pbVar29 + -0x168) = puVar2" (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar29 + -4) = pcVar32;" (assignment_expression "*(code **)(pbVar29 + -4) = pcVar32" (pointer_expression "*(code **)(pbVar29 + -4)" * (cast_expression "(code **)(pbVar29 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -4)" ( (binary_expression "pbVar29 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -8) = abStack_70;" (assignment_expression "*(byte **)(pbVar29 + -8) = abStack_70" (pointer_expression "*(byte **)(pbVar29 + -8)" * (cast_expression "(byte **)(pbVar29 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -8)" ( (binary_expression "pbVar29 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0xc) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0xc) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0xc)" * (cast_expression "(byte **)(pbVar29 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0xc)" ( (binary_expression "pbVar29 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x14)" * (cast_expression "(uint *)(pbVar29 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x14)" ( (binary_expression "pbVar29 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x18)" * (cast_expression "(undefined **)(pbVar29 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x18)" ( (binary_expression "pbVar29 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x20) = param_3;" (assignment_expression "*(byte **)(pbVar29 + -0x20) = param_3" (pointer_expression "*(byte **)(pbVar29 + -0x20)" * (cast_expression "(byte **)(pbVar29 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x20)" ( (binary_expression "pbVar29 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x24) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x24) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x24)" * (cast_expression "(undefined **)(pbVar29 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x24)" ( (binary_expression "pbVar29 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x28) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x28) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x28)" * (cast_expression "(byte **)(pbVar29 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x28)" ( (binary_expression "pbVar29 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar29 + -0x148) = puVar5;" (assignment_expression "*(undefined4 **)(pbVar29 + -0x148) = puVar5" (pointer_expression "*(undefined4 **)(pbVar29 + -0x148)" * (cast_expression "(undefined4 **)(pbVar29 + -0x148)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x148)" ( (binary_expression "pbVar29 + -0x148" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (uint)*pbVar4;" (assignment_expression "uVar3 = (uint)*pbVar4" identifier = (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(pbVar29 + -0x2c)" * (cast_expression "(undefined4 *)(pbVar29 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x2c)" ( (binary_expression "pbVar29 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pbVar22 = pbVar14;" (assignment_expression "pbVar22 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" identifier = identifier) ;) (if_statement "if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" { (expression_statement "pbVar24 = pbVar29 + -0x130;" (assignment_expression "pbVar24 = pbVar29 + -0x130" identifier = (binary_expression "pbVar29 + -0x130" identifier + number_literal)) ;) (expression_statement "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);" (assignment_expression "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" identifier = (cast_expression "(byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x10" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);" (assignment_expression "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" identifier = (cast_expression "(undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 2)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 2" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x144)" * (cast_expression "(undefined4 *)(pbVar29 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x144)" ( (binary_expression "pbVar29 + -0x144" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar26 + 0x1e988)" * (cast_expression "(undefined4 *)(puVar26 + 0x1e988)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e988)" ( (binary_expression "puVar26 + 0x1e988" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;" (assignment_expression "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(pbVar29 + -0x154)" * (cast_expression "(int *)(pbVar29 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x154)" ( (binary_expression "pbVar29 + -0x154" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(puVar26 + 0x1e840)" * (cast_expression "(int *)(puVar26 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e840)" ( (binary_expression "puVar26 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;" (assignment_expression "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(pbVar29 + -0x138)" * (cast_expression "(int *)(pbVar29 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x138)" ( (binary_expression "pbVar29 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(puVar26 + 0x1e99c)" * (cast_expression "(int *)(puVar26 + 0x1e99c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e99c)" ( (binary_expression "puVar26 + 0x1e99c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;" (assignment_expression "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(pbVar29 + -0x13c)" * (cast_expression "(int *)(pbVar29 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x13c)" ( (binary_expression "pbVar29 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(puVar26 + 0x1e840)" * (cast_expression "(int *)(puVar26 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e840)" ( (binary_expression "puVar26 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;" (assignment_expression "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + -0x14c)" * (cast_expression "(uint *)(pbVar29 + -0x14c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x14c)" ( (binary_expression "pbVar29 + -0x14c" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;" (assignment_expression "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + -0x150)" * (cast_expression "(uint *)(pbVar29 + -0x150)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x150)" ( (binary_expression "pbVar29 + -0x150" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;" (assignment_expression "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + -0x140)" * (cast_expression "(uint *)(pbVar29 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x140)" ( (binary_expression "pbVar29 + -0x140" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "unaff_s5 = param_4;" (assignment_expression "unaff_s5 = param_4" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar4;" (assignment_expression "pbVar31 = pbVar4" identifier = identifier) ;) (do_statement "do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);" do (compound_statement "{\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    }" { (expression_statement "uVar19 = uVar3;" (assignment_expression "uVar19 = uVar3" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7dac))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7dac))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7dac))" ( (pointer_expression "**(code **)(puVar2 + -0x7dac)" * (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);" (assignment_expression "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar6 + uVar3 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4 + 3)" ( (binary_expression "*piVar6 + uVar3 * 4 + 3" (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "uVar3 = uVar19 - 0x21 & 0xff;" (assignment_expression "uVar3 = uVar19 - 0x21 & 0xff" identifier = (binary_expression "uVar19 - 0x21 & 0xff" (binary_expression "uVar19 - 0x21" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" if (parenthesized_expression "(uVar3 < 0x3c)" ( (binary_expression "uVar3 < 0x3c" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" { comment comment (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" * (cast_expression "(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" ( (binary_expression "*(int *)(pbVar29 + -0x154) + uVar3 * 4" (pointer_expression "*(int *)(pbVar29 + -0x154)" * (cast_expression "(int *)(pbVar29 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x154)" ( (binary_expression "pbVar29 + -0x154" identifier + number_literal) )))) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "uVar3 = uVar19;" (assignment_expression "uVar3 = uVar19" identifier = identifier) ;) (if_statement "if (pbVar23 == pbVar14) goto LAB_00037c78;" if (parenthesized_expression "(pbVar23 == pbVar14)" ( (binary_expression "pbVar23 == pbVar14" identifier == identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "uVar3 = (uint)*pbVar23;" (assignment_expression "uVar3 = (uint)*pbVar23" identifier = (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 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        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }" { (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7dac);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7dac)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pbVar29 + -0x158) = uVar19;" (assignment_expression "*(uint *)(pbVar29 + -0x158) = uVar19" (pointer_expression "*(uint *)(pbVar29 + -0x158)" * (cast_expression "(uint *)(pbVar29 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x158)" ( (binary_expression "pbVar29 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = (int *)(*pcVar32)();" (assignment_expression "piVar6 = (int *)(*pcVar32)()" identifier = (cast_expression "(int *)(*pcVar32)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(pbVar29 + -0x158);" (assignment_expression "uVar19 = *(uint *)(pbVar29 + -0x158)" identifier = (pointer_expression "*(uint *)(pbVar29 + -0x158)" * (cast_expression "(uint *)(pbVar29 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x158)" ( (binary_expression "pbVar29 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(*piVar6 + uVar3 * 4);" (assignment_expression "uVar3 = *(uint *)(*piVar6 + uVar3 * 4)" identifier = (pointer_expression "*(uint *)(*piVar6 + uVar3 * 4)" * (cast_expression "(uint *)(*piVar6 + uVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4)" ( (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if (uVar3 != uVar19) goto LAB_00037c78;" if (parenthesized_expression "(uVar3 != uVar19)" ( (binary_expression "uVar3 != uVar19" identifier != identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "pbVar31 = *(byte **)(pbVar29 + -0x15c);" (assignment_expression "pbVar31 = *(byte **)(pbVar29 + -0x15c)" identifier = (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = (uint)*pbVar31;" (assignment_expression "uVar3 = (uint)*pbVar31" identifier = (binary_expression "(uint)*pbVar31" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar23 != pbVar14)" ( (binary_expression "pbVar23 != pbVar14" identifier != identifier) )) (compound_statement "{\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" { (if_statement "if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" if (parenthesized_expression "((*(uint *)(pbVar29 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(pbVar29 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 8)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 8" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar7 = 1;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" else (compound_statement "{\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" { (expression_statement "uVar7 = (uint)(*pbVar23 != 0x2f);" (assignment_expression "uVar7 = (uint)(*pbVar23 != 0x2f)" identifier = (call_expression "(uint)(*pbVar23 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar23 != 0x2f)" ( (binary_expression "*pbVar23 != 0x2f" (pointer_expression "*pbVar23" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);" statement_identifier : (expression_statement "iVar10 = *(int *)(pbVar29 + -0x2c);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x2c)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x2c)" * (cast_expression "(int *)(pbVar29 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x2c)" ( (binary_expression "pbVar29 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }" if (parenthesized_expression "(iVar10 == **(int **)(pbVar29 + -0x148))" ( (binary_expression "iVar10 == **(int **)(pbVar29 + -0x148)" identifier == (pointer_expression "**(int **)(pbVar29 + -0x148)" * (pointer_expression "*(int **)(pbVar29 + -0x148)" * (cast_expression "(int **)(pbVar29 + -0x148)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x148)" ( (binary_expression "pbVar29 + -0x148" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) })) (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7c4c);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7c4c)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7c4c)" * (cast_expression "(code **)(puVar2 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7c4c)" ( (binary_expression "puVar2 + -0x7c4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = rpl_fnmatch;" (assignment_expression "pcVar33 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = *(code **)(pcVar32 + 0x1dd98);" (assignment_expression "pcVar27 = *(code **)(pcVar32 + 0x1dd98)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1dd98)" * (cast_expression "(code **)(pcVar32 + 0x1dd98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1dd98)" ( (binary_expression "pcVar32 + 0x1dd98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(pbVar29 + -0x1a4) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x1a4) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x1a4)" * (cast_expression "(undefined **)(pbVar29 + -0x1a4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1a4)" ( (binary_expression "pbVar29 + -0x1a4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar32 + 0x1dddc);" (assignment_expression "piVar6 = *(int **)(pcVar32 + 0x1dddc)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x1dddc)" * (cast_expression "(int **)(pcVar32 + 0x1dddc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1dddc)" ( (binary_expression "pcVar32 + 0x1dddc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar29 + -0x188) = pbVar31;" (assignment_expression "*(byte **)(pbVar29 + -0x188) = pbVar31" (pointer_expression "*(byte **)(pbVar29 + -0x188)" * (cast_expression "(byte **)(pbVar29 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x188)" ( (binary_expression "pbVar29 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x1a0) = uVar3;" (assignment_expression "*(uint *)(pbVar29 + -0x1a0) = uVar3" (pointer_expression "*(uint *)(pbVar29 + -0x1a0)" * (cast_expression "(uint *)(pbVar29 + -0x1a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1a0)" ( (binary_expression "pbVar29 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;" (assignment_expression "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08" (pointer_expression "*(code **)(pbVar29 + -0x1d0)" * (cast_expression "(code **)(pbVar29 + -0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) = (binary_expression "pcVar32 + 0x25a08" identifier + number_literal)) ;) (expression_statement "*(code **)(pbVar29 + -0x184) = pcVar33;" (assignment_expression "*(code **)(pbVar29 + -0x184) = pcVar33" (pointer_expression "*(code **)(pbVar29 + -0x184)" * (cast_expression "(code **)(pbVar29 + -0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x184)" ( (binary_expression "pbVar29 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x18c) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0x18c) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0x18c)" * (cast_expression "(byte **)(pbVar29 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x18c)" ( (binary_expression "pbVar29 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -400) = pbVar23;" (assignment_expression "*(byte **)(pbVar29 + -400) = pbVar23" (pointer_expression "*(byte **)(pbVar29 + -400)" * (cast_expression "(byte **)(pbVar29 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -400)" ( (binary_expression "pbVar29 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x194) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x194) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x194)" * (cast_expression "(uint *)(pbVar29 + -0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x194)" ( (binary_expression "pbVar29 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x198) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x198) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x198)" * (cast_expression "(undefined **)(pbVar29 + -0x198)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x198)" ( (binary_expression "pbVar29 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x19c) = pbVar14;" (assignment_expression "*(byte **)(pbVar29 + -0x19c) = pbVar14" (pointer_expression "*(byte **)(pbVar29 + -0x19c)" * (cast_expression "(byte **)(pbVar29 + -0x19c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x19c)" ( (binary_expression "pbVar29 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x1a8) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x1a8) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x1a8)" * (cast_expression "(byte **)(pbVar29 + -0x1a8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1a8)" ( (binary_expression "pbVar29 + -0x1a8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1bc) = iVar10;" (assignment_expression "*(int *)(pbVar29 + -0x1bc) = iVar10" (pointer_expression "*(int *)(pbVar29 + -0x1bc)" * (cast_expression "(int *)(pbVar29 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1bc)" ( (binary_expression "pbVar29 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x1c0) = pbVar13;" (assignment_expression "*(byte **)(pbVar29 + -0x1c0) = pbVar13" (pointer_expression "*(byte **)(pbVar29 + -0x1c0)" * (cast_expression "(byte **)(pbVar29 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1ac) = *piVar6;" (assignment_expression "*(int *)(pbVar29 + -0x1ac) = *piVar6" (pointer_expression "*(int *)(pbVar29 + -0x1ac)" * (cast_expression "(int *)(pbVar29 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1ac)" ( (binary_expression "pbVar29 + -0x1ac" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = (*pcVar27)();" (assignment_expression "iVar10 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 != 1)" ( (binary_expression "iVar10 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" { (expression_statement "puVar17 = pbVar29 + -0x1b4;" (assignment_expression "puVar17 = pbVar29 + -0x1b4" identifier = (binary_expression "pbVar29 + -0x1b4" identifier + number_literal)) ;) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = pbVar29 + -0x1bc;" (assignment_expression "puVar20 = pbVar29 + -0x1bc" identifier = (binary_expression "pbVar29 + -0x1bc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b4) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b4) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1b4)" ( (binary_expression "pbVar29 + -0x1b4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b0) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b0) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b0)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1b0)" ( (binary_expression "pbVar29 + -0x1b0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar32)(0,puVar20,0,puVar17);" (assignment_expression "iVar10 = (*pcVar32)(0,puVar20,0,puVar17)" identifier = (call_expression "(*pcVar32)(0,puVar20,0,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,puVar20,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "uVar3 = iVar10 + 1;" (assignment_expression "uVar3 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" ( (pointer_expression "**(code **)(iVar28 + -0x7c30)" * (pointer_expression "*(code **)(iVar28 + -0x7c30)" * (cast_expression "(code **)(iVar28 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c30)" ( (binary_expression "iVar28 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "uVar15 = 0x129;" (assignment_expression "uVar15 = 0x129" identifier = number_literal) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(pbVar29 + -0x1c0);" (assignment_expression "piVar11 = (int *)(pbVar29 + -0x1c0)" identifier = (cast_expression "(int *)(pbVar29 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(0,piVar11,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "iVar25 = iVar10 + 1;" (assignment_expression "iVar25 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" ( (pointer_expression "**(code **)(iVar28 + -0x7c30)" * (pointer_expression "*(code **)(iVar28 + -0x7c30)" * (cast_expression "(code **)(iVar28 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c30)" ( (binary_expression "iVar28 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar15 = 0x12d;" (assignment_expression "uVar15 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar3 + iVar25;" (assignment_expression "uVar19 = uVar3 + iVar25" identifier = (binary_expression "uVar3 + iVar25" identifier + identifier)) ;) (if_statement "if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" if (parenthesized_expression "((uVar3 <= uVar19) && (uVar19 < 0x40000000))" ( (binary_expression "(uVar3 <= uVar19) && (uVar19 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar19)" ( (binary_expression "uVar3 <= uVar19" identifier <= identifier) )) && (parenthesized_expression "(uVar19 < 0x40000000)" ( (binary_expression "uVar19 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" { (if_statement "if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar19 < 2000)" ( (binary_expression "uVar19 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 * 4 + 7 & 0xfffffff8" (binary_expression "uVar19 * 4 + 7" (binary_expression "uVar19 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar21 = pbVar29 + iVar8 + -0x1d0;" (assignment_expression "puVar21 = pbVar29 + iVar8 + -0x1d0" identifier = (binary_expression "pbVar29 + iVar8 + -0x1d0" (binary_expression "pbVar29 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "piVar16 = (int *)(puVar21 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(puVar21 + uVar3 * 4)" identifier = (cast_expression "(int *)(puVar21 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + uVar3 * 4)" ( (binary_expression "puVar21 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(puVar21,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(piVar16,piVar11,iVar25,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + iVar8 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + iVar8 + -0x1d8)" ( (binary_expression "pbVar29 + iVar8 + -0x1d8" (binary_expression "pbVar29 + iVar8" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "piVar16 + iVar10" identifier + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c9c))();" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c9c))()" identifier = (call_expression "(**(code **)(iVar28 + -0x7c9c))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7c9c))" ( (pointer_expression "**(code **)(iVar28 + -0x7c9c)" * (pointer_expression "*(code **)(iVar28 + -0x7c9c)" * (cast_expression "(code **)(iVar28 + -0x7c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c9c)" ( (binary_expression "iVar28 + -0x7c9c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00038914;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar29 + -0x1c4) = iVar8;" (assignment_expression "*(int *)(pbVar29 + -0x1c4) = iVar8" (pointer_expression "*(int *)(pbVar29 + -0x1c4)" * (cast_expression "(int *)(pbVar29 + -0x1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = (int *)(iVar8 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(iVar8 + uVar3 * 4)" identifier = (cast_expression "(int *)(iVar8 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + uVar3 * 4)" ( (binary_expression "iVar8 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*pcVar32)(iVar8,puVar20,uVar3,puVar17);" (call_expression "(*pcVar32)(iVar8,puVar20,uVar3,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar8,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar32)(piVar16,piVar11,iVar25,puVar17);" (call_expression "(*pcVar32)(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(piVar16,piVar11,iVar25,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d8)" ( (binary_expression "pbVar29 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) , identifier , (binary_expression "piVar16 + iVar10" identifier + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;" (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c20" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4))" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) ))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar15 = 0x147;" (assignment_expression "uVar15 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" statement_identifier : (expression_statement "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" (assignment_expression "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" identifier = (call_expression "(**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" (parenthesized_expression "(**(code **)(iVar28 + -0x7db0))" ( (pointer_expression "**(code **)(iVar28 + -0x7db0)" * (pointer_expression "*(code **)(iVar28 + -0x7db0)" * (cast_expression "(code **)(iVar28 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7db0)" ( (binary_expression "iVar28 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" ( (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f48" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f3c" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x5258" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" statement_identifier : (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar28 + -0x7cf8))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7cf8))" ( (pointer_expression "**(code **)(iVar28 + -0x7cf8)" * (pointer_expression "*(code **)(iVar28 + -0x7cf8)" * (cast_expression "(code **)(iVar28 + -0x7cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cf8)" ( (binary_expression "iVar28 + -0x7cf8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "piVar16 = *(int **)(pbVar29 + -0x1c0);" (assignment_expression "piVar16 = *(int **)(pbVar29 + -0x1c0)" identifier = (pointer_expression "*(int **)(pbVar29 + -0x1c0)" * (cast_expression "(int **)(pbVar29 + -0x1c0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16)" identifier = (call_expression "(**(code **)(iVar28 + -0x7cbc))(piVar16)" (parenthesized_expression "(**(code **)(iVar28 + -0x7cbc))" ( (pointer_expression "**(code **)(iVar28 + -0x7cbc)" * (pointer_expression "*(code **)(iVar28 + -0x7cbc)" * (cast_expression "(code **)(iVar28 + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cbc)" ( (binary_expression "iVar28 + -0x7cbc" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier )))) ;) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d8)" ( (binary_expression "pbVar29 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1bc)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1bc)" ( (binary_expression "pbVar29 + -0x1bc" identifier + number_literal) )))) , identifier , (binary_expression "(int)piVar16 + iVar10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);" statement_identifier : (expression_statement "piVar11 = *(int **)(pbVar29 + -0x1ac);" (assignment_expression "piVar11 = *(int **)(pbVar29 + -0x1ac)" identifier = (pointer_expression "*(int **)(pbVar29 + -0x1ac)" * (cast_expression "(int **)(pbVar29 + -0x1ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1ac)" ( (binary_expression "pbVar29 + -0x1ac" identifier + number_literal) ))))) ;)) (if_statement "if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }" if (parenthesized_expression "(piVar11 == (int *)*piVar6)" ( (binary_expression "piVar11 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "(**(code **)(iVar10 + -0x7c4c))();" (call_expression "(**(code **)(iVar10 + -0x7c4c))()" (parenthesized_expression "(**(code **)(iVar10 + -0x7c4c))" ( (pointer_expression "**(code **)(iVar10 + -0x7c4c)" * (pointer_expression "*(code **)(iVar10 + -0x7c4c)" * (cast_expression "(code **)(iVar10 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7c4c)" ( (binary_expression "iVar10 + -0x7c4c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" if (parenthesized_expression "((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3]))" ( (binary_expression "(piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])" (parenthesized_expression "(piVar11[2] == piVar16[2])" ( (binary_expression "piVar11[2] == piVar16[2]" (subscript_expression "piVar11[2]" identifier [ number_literal ]) == (subscript_expression "piVar16[2]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar11[3] == piVar16[3])" ( (binary_expression "piVar11[3] == piVar16[3]" (subscript_expression "piVar11[3]" identifier [ number_literal ]) == (subscript_expression "piVar16[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" { (return_statement "return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);" return (call_expression "(uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" ( (binary_expression "*piVar11 == *piVar16 && piVar11[1] == piVar16[1]" (binary_expression "*piVar11 == *piVar16" (pointer_expression "*piVar11" * identifier) == (pointer_expression "*piVar16" * identifier)) && (binary_expression "piVar11[1] == piVar16[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) == (subscript_expression "piVar16[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  patternlist *ppVar16;\n  int *string_00;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  char *unaff_s5;\n  undefined1 *puVar20;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  byte *pbVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  code *pcVar31;\n  code *pcVar32;\n  byte abStack_70 [24];\n  byte *local_48;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar28 = abStack_70;\n  pbVar30 = abStack_70;\n  pbVar23 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern);\n  puVar25 = PTR_DAT_00056260;\n  iVar10 = (int)pattern[1];\n  if (iVar10 != 0) {\n    unaff_s5 = (char *)0x0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = (patternlist *)&list;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar23;\nLAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return -1;\n  }\n  pcVar31 = internal_fnmatch;\n  pbVar4 = local_2c;\n  puVar25 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar25 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc);\n  *(byte **)(pbVar28 + -0x10) = unaff_s6;\n  *(int *)(pbVar28 + -0x1c) = opt;\n  *(undefined **)(pbVar28 + -0x168) = puVar2;\n  *(code **)(pbVar28 + -4) = pcVar31;\n  *(byte **)(pbVar28 + -8) = abStack_70;\n  *(byte **)(pbVar28 + -0xc) = pbVar23;\n  *(char **)(pbVar28 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x18) = unaff_s4;\n  *(char **)(pbVar28 + -0x20) = string;\n  *(undefined **)(pbVar28 + -0x24) = puVar18;\n  *(char **)(pbVar28 + -0x28) = pattern;\n  *(undefined4 **)(pbVar28 + -0x148) = puVar5;\n  *(byte **)(pbVar28 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar28 + -0x2c) = *puVar5;\n  pbVar21 = pbVar14;\n  pbVar22 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar23 = pbVar28 + -0x130;\n    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);\n    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);\n    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;\n    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;\n    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;\n    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;\n    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;\n    unaff_s5 = string_end;\n    pbVar30 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar22 != pbVar14) {\n    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar28 + -0x2c);\n  if (iVar10 == **(int **)(pbVar28 + -0x148)) {\n    return uVar7;\n  }\n  pcVar31 = *(code **)(puVar2 + -0x7c4c);\n  pcVar32 = rpl_fnmatch;\n  (*pcVar31)();\n  pcVar26 = *(code **)(pcVar31 + 0x1dd98);\n  *(undefined **)(pbVar28 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar31 + 0x1dddc);\n  *(byte **)(pbVar28 + -0x188) = pbVar30;\n  *(uint *)(pbVar28 + -0x1a0) = uVar3;\n  *(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08;\n  *(code **)(pbVar28 + -0x184) = pcVar32;\n  *(byte **)(pbVar28 + -0x18c) = pbVar23;\n  *(byte **)(pbVar28 + -400) = pbVar22;\n  *(char **)(pbVar28 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x198) = unaff_s4;\n  *(byte **)(pbVar28 + -0x19c) = pbVar14;\n  *(char **)(pbVar28 + -0x1a8) = pattern;\n  *(int *)(pbVar28 + -0x1bc) = iVar10;\n  *(byte **)(pbVar28 + -0x1c0) = pbVar13;\n  *(int *)(pbVar28 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar26)();\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar28 + -0x1b4;\n    pcVar31 = *(code **)(iVar27 + -0x7bec);\n    puVar20 = pbVar28 + -0x1bc;\n    *(undefined4 *)(pbVar28 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar28 + -0x1b0) = 0;\n    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar27 = *(int *)(pbVar28 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = *(int **)(pbVar28 + -0x1c0);\n  iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00);\n  *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n  iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           );\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar28 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return iVar10;\n  }\n  (**(code **)(iVar27 + -0x7c4c))();\n  if ((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])) {\n    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);\n  }\n  return 0;\n}\n\n" (function_definition "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  patternlist *ppVar16;\n  int *string_00;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  char *unaff_s5;\n  undefined1 *puVar20;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  byte *pbVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  code *pcVar31;\n  code *pcVar32;\n  byte abStack_70 [24];\n  byte *local_48;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar28 = abStack_70;\n  pbVar30 = abStack_70;\n  pbVar23 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern);\n  puVar25 = PTR_DAT_00056260;\n  iVar10 = (int)pattern[1];\n  if (iVar10 != 0) {\n    unaff_s5 = (char *)0x0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = (patternlist *)&list;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar23;\nLAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return -1;\n  }\n  pcVar31 = internal_fnmatch;\n  pbVar4 = local_2c;\n  puVar25 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar25 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc);\n  *(byte **)(pbVar28 + -0x10) = unaff_s6;\n  *(int *)(pbVar28 + -0x1c) = opt;\n  *(undefined **)(pbVar28 + -0x168) = puVar2;\n  *(code **)(pbVar28 + -4) = pcVar31;\n  *(byte **)(pbVar28 + -8) = abStack_70;\n  *(byte **)(pbVar28 + -0xc) = pbVar23;\n  *(char **)(pbVar28 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x18) = unaff_s4;\n  *(char **)(pbVar28 + -0x20) = string;\n  *(undefined **)(pbVar28 + -0x24) = puVar18;\n  *(char **)(pbVar28 + -0x28) = pattern;\n  *(undefined4 **)(pbVar28 + -0x148) = puVar5;\n  *(byte **)(pbVar28 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar28 + -0x2c) = *puVar5;\n  pbVar21 = pbVar14;\n  pbVar22 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar23 = pbVar28 + -0x130;\n    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);\n    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);\n    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;\n    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;\n    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;\n    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;\n    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;\n    unaff_s5 = string_end;\n    pbVar30 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar22 != pbVar14) {\n    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar28 + -0x2c);\n  if (iVar10 == **(int **)(pbVar28 + -0x148)) {\n    return uVar7;\n  }\n  pcVar31 = *(code **)(puVar2 + -0x7c4c);\n  pcVar32 = rpl_fnmatch;\n  (*pcVar31)();\n  pcVar26 = *(code **)(pcVar31 + 0x1dd98);\n  *(undefined **)(pbVar28 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar31 + 0x1dddc);\n  *(byte **)(pbVar28 + -0x188) = pbVar30;\n  *(uint *)(pbVar28 + -0x1a0) = uVar3;\n  *(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08;\n  *(code **)(pbVar28 + -0x184) = pcVar32;\n  *(byte **)(pbVar28 + -0x18c) = pbVar23;\n  *(byte **)(pbVar28 + -400) = pbVar22;\n  *(char **)(pbVar28 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x198) = unaff_s4;\n  *(byte **)(pbVar28 + -0x19c) = pbVar14;\n  *(char **)(pbVar28 + -0x1a8) = pattern;\n  *(int *)(pbVar28 + -0x1bc) = iVar10;\n  *(byte **)(pbVar28 + -0x1c0) = pbVar13;\n  *(int *)(pbVar28 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar26)();\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar28 + -0x1b4;\n    pcVar31 = *(code **)(iVar27 + -0x7bec);\n    puVar20 = pbVar28 + -0x1bc;\n    *(undefined4 *)(pbVar28 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar28 + -0x1b0) = 0;\n    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar27 = *(int *)(pbVar28 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = *(int **)(pbVar28 + -0x1c0);\n  iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00);\n  *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n  iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           );\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar28 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return iVar10;\n  }\n  (**(code **)(iVar27 + -0x7c4c))();\n  if ((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])) {\n    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);\n  }\n  return 0;\n}" primitive_type (function_declarator "ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)" identifier (parameter_list "(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)" ( (parameter_declaration "int opt" primitive_type identifier) , (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "char *string_end" primitive_type (pointer_declarator "*string_end" * identifier)) , (parameter_declaration "_Bool no_leading_period" type_identifier identifier) , (parameter_declaration "int flags" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  patternlist *ppVar16;\n  int *string_00;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  char *unaff_s5;\n  undefined1 *puVar20;\n  wchar_t *pattern_00;\n  byte *unaff_s6;\n  byte *pbVar21;\n  byte *pbVar22;\n  byte *pbVar23;\n  int iVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  byte *pbVar28;\n  undefined1 *puVar29;\n  byte *pbVar30;\n  code *pcVar31;\n  code *pcVar32;\n  byte abStack_70 [24];\n  byte *local_48;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar28 = abStack_70;\n  pbVar30 = abStack_70;\n  pbVar23 = (byte *)(pattern + 1);\n  list = (patternlist *)0x0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = (byte *)pattern;\n  pbVar14 = (byte *)string;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern);\n  puVar25 = PTR_DAT_00056260;\n  iVar10 = (int)pattern[1];\n  if (iVar10 != 0) {\n    unaff_s5 = (char *)0x0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = (patternlist *)&list;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar23;\nLAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return -1;\n  }\n  pcVar31 = internal_fnmatch;\n  pbVar4 = local_2c;\n  puVar25 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar25 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc);\n  *(byte **)(pbVar28 + -0x10) = unaff_s6;\n  *(int *)(pbVar28 + -0x1c) = opt;\n  *(undefined **)(pbVar28 + -0x168) = puVar2;\n  *(code **)(pbVar28 + -4) = pcVar31;\n  *(byte **)(pbVar28 + -8) = abStack_70;\n  *(byte **)(pbVar28 + -0xc) = pbVar23;\n  *(char **)(pbVar28 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x18) = unaff_s4;\n  *(char **)(pbVar28 + -0x20) = string;\n  *(undefined **)(pbVar28 + -0x24) = puVar18;\n  *(char **)(pbVar28 + -0x28) = pattern;\n  *(undefined4 **)(pbVar28 + -0x148) = puVar5;\n  *(byte **)(pbVar28 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar28 + -0x2c) = *puVar5;\n  pbVar21 = pbVar14;\n  pbVar22 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar23 = pbVar28 + -0x130;\n    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);\n    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);\n    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;\n    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;\n    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;\n    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;\n    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;\n    unaff_s5 = string_end;\n    pbVar30 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar22 != pbVar14) {\n    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar28 + -0x2c);\n  if (iVar10 == **(int **)(pbVar28 + -0x148)) {\n    return uVar7;\n  }\n  pcVar31 = *(code **)(puVar2 + -0x7c4c);\n  pcVar32 = rpl_fnmatch;\n  (*pcVar31)();\n  pcVar26 = *(code **)(pcVar31 + 0x1dd98);\n  *(undefined **)(pbVar28 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar31 + 0x1dddc);\n  *(byte **)(pbVar28 + -0x188) = pbVar30;\n  *(uint *)(pbVar28 + -0x1a0) = uVar3;\n  *(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08;\n  *(code **)(pbVar28 + -0x184) = pcVar32;\n  *(byte **)(pbVar28 + -0x18c) = pbVar23;\n  *(byte **)(pbVar28 + -400) = pbVar22;\n  *(char **)(pbVar28 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar28 + -0x198) = unaff_s4;\n  *(byte **)(pbVar28 + -0x19c) = pbVar14;\n  *(char **)(pbVar28 + -0x1a8) = pattern;\n  *(int *)(pbVar28 + -0x1bc) = iVar10;\n  *(byte **)(pbVar28 + -0x1c0) = pbVar13;\n  *(int *)(pbVar28 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar26)();\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar28 + -0x1b4;\n    pcVar31 = *(code **)(iVar27 + -0x7bec);\n    puVar20 = pbVar28 + -0x1bc;\n    *(undefined4 *)(pbVar28 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar28 + -0x1b0) = 0;\n    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar27 = *(int *)(pbVar28 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  string_00 = *(int **)(pbVar28 + -0x1c0);\n  iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00);\n  *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n  iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           );\n  iVar27 = *(int *)(pbVar28 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar28 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return iVar10;\n  }\n  (**(code **)(iVar27 + -0x7c4c))();\n  if ((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])) {\n    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);\n  }\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "patternlist *ppVar16;" type_identifier (pointer_declarator "*ppVar16" * identifier) ;) (declaration "int *string_00;" primitive_type (pointer_declarator "*string_00" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "char *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * 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 *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "undefined1 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "byte abStack_70 [24];" type_identifier (array_declarator "abStack_70 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * 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 "puVar18 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar18 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "pbVar28 = abStack_70;" (assignment_expression "pbVar28 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar30 = abStack_70;" (assignment_expression "pbVar30 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)(pattern + 1);" (assignment_expression "pbVar23 = (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_000564b4;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000564b4" * (cast_expression "(byte **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar13 = (byte *)pattern;" (assignment_expression "pbVar13 = (byte *)pattern" identifier = (cast_expression "(byte *)pattern" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar14 = (byte *)string;" (assignment_expression "pbVar14 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(pattern)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_00056424)(pattern)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_00056424)(pattern)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pattern)" ( identifier ))))) ;) (expression_statement "puVar25 = PTR_DAT_00056260;" (assignment_expression "puVar25 = PTR_DAT_00056260" identifier = identifier) ;) (expression_statement "iVar10 = (int)pattern[1];" (assignment_expression "iVar10 = (int)pattern[1]" identifier = (cast_expression "(int)pattern[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pattern[1]" identifier [ number_literal ]))) ;) (if_statement "if (iVar10 != 0) {\n    unaff_s5 = (char *)0x0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = (patternlist *)&list;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar23;\nLAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (char *)0x0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = (patternlist *)&list;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar23;\nLAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);\n  }" { (expression_statement "unaff_s5 = (char *)0x0;" (assignment_expression "unaff_s5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar2 = PTR_wcrtomb_00056118 + 0x724;" (assignment_expression "puVar2 = PTR_wcrtomb_00056118 + 0x724" identifier = (binary_expression "PTR_wcrtomb_00056118 + 0x724" 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 "pbVar4 = abStack_70;" (assignment_expression "pbVar4 = abStack_70" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar23;" (assignment_expression "unaff_s6 = pbVar23" identifier = identifier) ;) (labeled_statement "LAB_0003728c:\n    do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);" statement_identifier : (do_statement "do {\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    } while (iVar10 != 0);" do (compound_statement "{\n      pbVar28 = pbVar4;\n      unaff_s4 = puVar25;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }\n      pbVar4 = pbVar28;\n    }" { (expression_statement "pbVar28 = pbVar4;" (assignment_expression "pbVar28 = pbVar4" identifier = identifier) ;) (expression_statement "unaff_s4 = puVar25;" (assignment_expression "unaff_s4 = puVar25" identifier = identifier) ;) (if_statement "if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }" if (parenthesized_expression "(iVar10 == 0x5b)" ( (binary_expression "iVar10 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }" { (expression_statement "pbVar14 = &DAT_00000021;" (assignment_expression "pbVar14 = &DAT_00000021" identifier = (pointer_expression "&DAT_00000021" & identifier)) ;) (if_statement "if (*(int *)(puVar25 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }\n        else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }" if (parenthesized_expression "(*(int *)(puVar25 + -0x56a0) == 0)" ( (binary_expression "*(int *)(puVar25 + -0x56a0) == 0" (pointer_expression "*(int *)(puVar25 + -0x56a0)" * (cast_expression "(int *)(puVar25 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x56a0)" ( (binary_expression "puVar25 + -0x56a0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar23[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar23[2];\nLAB_00037494:\n          pbVar4 = pbVar23 + 2;\n        }" { (expression_statement "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);" (assignment_expression "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0005644c)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0005644c)" ( (pointer_expression "*(code *)PTR_getenv_0005644c" * (cast_expression "(code *)PTR_getenv_0005644c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "bVar12 = pbVar23[1];" (assignment_expression "bVar12 = pbVar23[1]" identifier = (subscript_expression "pbVar23[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 != 0) {\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar25 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" { (expression_statement "*(undefined4 *)(puVar25 + -0x56a0) = 1;" (assignment_expression "*(undefined4 *)(puVar25 + -0x56a0) = 1" (pointer_expression "*(undefined4 *)(puVar25 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar25 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x56a0)" ( (binary_expression "puVar25 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037418;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037418;" goto statement_identifier ;)) (goto_statement "goto LAB_00037490;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar25 + -0x56a0) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar25 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar25 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x56a0)" ( (binary_expression "puVar25 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037408;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037408;" goto statement_identifier ;)) (expression_statement "bVar12 = pbVar23[2];" (assignment_expression "bVar12 = pbVar23[2]" identifier = (subscript_expression "pbVar23[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00037494:\n          pbVar4 = pbVar23 + 2;" statement_identifier : (expression_statement "pbVar4 = pbVar23 + 2;" (assignment_expression "pbVar4 = pbVar23 + 2" identifier = (binary_expression "pbVar23 + 2" identifier + number_literal)) ;)) }) (else_clause "else {\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }" else (compound_statement "{\n          bVar12 = pbVar23[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar23 + 1;\n        }" { (expression_statement "bVar12 = pbVar23[1];" (assignment_expression "bVar12 = pbVar23[1]" identifier = (subscript_expression "pbVar23[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }" if (parenthesized_expression "(bVar12 == 0x21)" ( (binary_expression "bVar12 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00037490:\n            bVar12 = pbVar23[2];\n            goto LAB_00037494;\n          }" { (labeled_statement "LAB_00037490:\n            bVar12 = pbVar23[2];" statement_identifier : (expression_statement "bVar12 = pbVar23[2];" (assignment_expression "bVar12 = pbVar23[2]" identifier = (subscript_expression "pbVar23[2]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00037494;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar25 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" if (parenthesized_expression "(*(int *)(puVar25 + -0x56a0) < 0)" ( (binary_expression "*(int *)(puVar25 + -0x56a0) < 0" (pointer_expression "*(int *)(puVar25 + -0x56a0)" * (cast_expression "(int *)(puVar25 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -0x56a0)" ( (binary_expression "puVar25 + -0x56a0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" { (labeled_statement "LAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;" statement_identifier : (if_statement "if (bVar12 == 0x5e) goto LAB_00037490;" if (parenthesized_expression "(bVar12 == 0x5e)" ( (binary_expression "bVar12 == 0x5e" identifier == number_literal) )) (goto_statement "goto LAB_00037490;" goto statement_identifier ;))) })) (labeled_statement "LAB_00037418:\n          pbVar4 = pbVar23 + 1;" statement_identifier : (expression_statement "pbVar4 = pbVar23 + 1;" (assignment_expression "pbVar4 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;)) }))) (if_statement "if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar4 = pbVar4 + 1;\n        }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar13 = (byte *)0x5d;" (assignment_expression "pbVar13 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar12 = *pbVar4;\n          pbVar23 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar23;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" { (expression_statement "bVar12 = *pbVar4;" (assignment_expression "bVar12 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "pbVar23 = pbVar4 + 1;" (assignment_expression "pbVar23 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (if_statement "if (bVar12 == 0x5d) break;" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar4 = pbVar23;" (assignment_expression "pbVar4 = pbVar23" identifier = identifier) ;) (if_statement "if (bVar12 == 0) goto LAB_000372e4;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000372e4;" goto statement_identifier ;)) })) (expression_statement "iVar10 = (int)(char)pbVar4[1];" (assignment_expression "iVar10 = (int)(char)pbVar4[1]" identifier = (cast_expression "(int)(char)pbVar4[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar4[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar4[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }" else (compound_statement "{\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }\njoined_r0x00037454:\n        pbVar23 = pbVar23 + 1;\n      }" { (expression_statement "pbVar13 = &DAT_c0000601;" (assignment_expression "pbVar13 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar10 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar10 - 0x21U & 0xff" identifier = (binary_expression "iVar10 - 0x21U & 0xff" (binary_expression "iVar10 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar14 = (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 (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];\n        }" { (if_statement "if ((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)) {\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" if (parenthesized_expression "((iVar10 == 0x7c) && (unaff_s5 == (char *)0x0))" ( (binary_expression "(iVar10 == 0x7c) && (unaff_s5 == (char *)0x0)" (parenthesized_expression "(iVar10 == 0x7c)" ( (binary_expression "iVar10 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == (char *)0x0)" ( (binary_expression "unaff_s5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar4 = local_48;\n            if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar23 + -(int)unaff_s6;\n            pbVar21 = pbVar23 + 1;\n            iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar29 = pbVar28 + iVar27;\n            ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);\n            iVar10 = (int)(char)pbVar23[1];\n            *puVar17 = 0;\n            ppVar16->next = (patternlist *)0x0;\n            local_34->next = ppVar16;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar21;\n            pbVar23 = pbVar21;\n            pbVar28 = pbVar28 + iVar27;\n            local_34 = ppVar16;\n            pbVar4 = puVar29;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" { (expression_statement "pbVar4 = local_48;" (assignment_expression "pbVar4 = local_48" identifier = identifier) ;) (if_statement "if (1 < opt - 0x3fU) {\n              pbVar4 = pbVar23 + (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              pbVar4 = pbVar23 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar4 = pbVar23 + (1 - (int)unaff_s6);" (assignment_expression "pbVar4 = pbVar23 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar23 + (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)(pbVar4 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar23 + -(int)unaff_s6;" (assignment_expression "pbVar14 = pbVar23 + -(int)unaff_s6" identifier = (binary_expression "pbVar23 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar21 = pbVar23 + 1;" (assignment_expression "pbVar21 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar27 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar29 = pbVar28 + iVar27;" (assignment_expression "puVar29 = pbVar28 + iVar27" identifier = (binary_expression "pbVar28 + iVar27" identifier + identifier)) ;) (expression_statement "ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18);" (assignment_expression "ppVar16 = (patternlist *)(pbVar28 + iVar27 + 0x18)" identifier = (cast_expression "(patternlist *)(pbVar28 + iVar27 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + iVar27 + 0x18)" ( (binary_expression "pbVar28 + iVar27 + 0x18" (binary_expression "pbVar28 + iVar27" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)(pbVar28 + iVar27 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar28 + iVar27 + 0x1c)" ( (binary_expression "pbVar28 + iVar27 + 0x1c" (binary_expression "pbVar28 + iVar27" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = (int)(char)pbVar23[1];" (assignment_expression "iVar10 = (int)(char)pbVar23[1]" identifier = (cast_expression "(int)(char)pbVar23[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar23[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "ppVar16->next = (patternlist *)0x0;" (assignment_expression "ppVar16->next = (patternlist *)0x0" (field_expression "ppVar16->next" identifier -> field_identifier) = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34->next = ppVar16;" (assignment_expression "local_34->next = ppVar16" (field_expression "local_34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar21;" (assignment_expression "unaff_s6 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar23 = pbVar21;" (assignment_expression "pbVar23 = pbVar21" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar28 + iVar27;" (assignment_expression "pbVar28 = pbVar28 + iVar27" identifier = (binary_expression "pbVar28 + iVar27" identifier + identifier)) ;) (expression_statement "local_34 = ppVar16;" (assignment_expression "local_34 = ppVar16" identifier = identifier) ;) (expression_statement "pbVar4 = puVar29;" (assignment_expression "pbVar4 = puVar29" identifier = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0003728c;" goto statement_identifier ;) })) (labeled_statement "LAB_00037450:\n          iVar10 = (int)(char)pbVar23[1];" statement_identifier : (expression_statement "iVar10 = (int)(char)pbVar23[1];" (assignment_expression "iVar10 = (int)(char)pbVar23[1]" identifier = (cast_expression "(int)(char)pbVar23[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar23[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == (char *)0x0;\n          unaff_s5 = unaff_s5 + -1;\n          if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar23[1];\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 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            iVar10 = (int)(char)pbVar23[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar23 = pbVar23 + 1;\n            uVar3 = 7;\n          }" { (expression_statement "iVar10 = (int)(char)pbVar23[1];" (assignment_expression "iVar10 = (int)(char)pbVar23[1]" identifier = (cast_expression "(int)(char)pbVar23[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar23[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar10 != 0x28) goto joined_r0x00037454;" if (parenthesized_expression "(iVar10 != 0x28)" ( (binary_expression "iVar10 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x00037454;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar10 != 0x29) goto LAB_00037450;" if (parenthesized_expression "(iVar10 != 0x29)" ( (binary_expression "iVar10 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00037450;" goto statement_identifier ;)) (expression_statement "bVar1 = unaff_s5 == (char *)0x0;" (assignment_expression "bVar1 = unaff_s5 == (char *)0x0" identifier = (binary_expression "unaff_s5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (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)) ;) (if_statement "if (bVar1) {\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);\n            if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }\n            break;\n          }" { (expression_statement "unaff_s5 = (char *)(uint)(opt - 0x3fU < 2);" (assignment_expression "unaff_s5 = (char *)(uint)(opt - 0x3fU < 2)" identifier = (cast_expression "(char *)(uint)(opt - 0x3fU < 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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) ))))) ;) (if_statement "if (unaff_s5 == (char *)0x0) {\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s5 == (char *)0x0)" ( (binary_expression "unaff_s5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_48 = pbVar23 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_48 = pbVar23 + (1 - (int)unaff_s6);" (assignment_expression "local_48 = pbVar23 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar23 + (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_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }" if (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);\n              *puVar17 = 0;\n              ((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;\n              local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18);\n              if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n              if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }\n                    /* WARNING: Could not emulate address calculation at 0x0003755c */\n                    /* WARNING: Treating indirect jump as call */\n              iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();\n              return iVar10;\n            }" { (expression_statement "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar28 + iVar10 + 0x1c,unaff_s6,(int)pbVar23 - (int)unaff_s6)" ( (binary_expression "pbVar28 + iVar10 + 0x1c" (binary_expression "pbVar28 + iVar10" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar23 - (int)unaff_s6" (cast_expression "(int)pbVar23" ( (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 "((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0;" (assignment_expression "((patternlist *)(pbVar28 + iVar10 + 0x18))->next = (patternlist *)0x0" (field_expression "((patternlist *)(pbVar28 + iVar10 + 0x18))->next" (parenthesized_expression "((patternlist *)(pbVar28 + iVar10 + 0x18))" ( (cast_expression "(patternlist *)(pbVar28 + iVar10 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + iVar10 + 0x18)" ( (binary_expression "pbVar28 + iVar10 + 0x18" (binary_expression "pbVar28 + iVar10" 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 *)(pbVar28 + iVar10 + 0x18);" (assignment_expression "local_34->next = (patternlist *)(pbVar28 + iVar10 + 0x18)" (field_expression "local_34->next" identifier -> field_identifier) = (cast_expression "(patternlist *)(pbVar28 + iVar10 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + iVar10 + 0x18)" ( (binary_expression "pbVar28 + iVar10 + 0x18" (binary_expression "pbVar28 + iVar10" identifier + identifier) + number_literal) )))) ;) (if_statement "if (list == (patternlist *)0x0) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\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                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x454,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4ef0" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (pbVar23[-1] != 0x29) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }" if (parenthesized_expression "(pbVar23[-1] != 0x29)" ( (binary_expression "pbVar23[-1] != 0x29" (subscript_expression "pbVar23[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x455,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f00" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) (if_statement "if (0x1f < opt - 0x21U) {\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }" if (parenthesized_expression "(0x1f < opt - 0x21U)" ( (binary_expression "0x1f < opt - 0x21U" number_literal < (binary_expression "opt - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);\n                return iVar10;\n              }" { (expression_statement "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "iVar10 = (*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                   (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,\n                                    0x4ad,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f14" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return iVar10;" return identifier ;) })) comment comment (expression_statement "iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))();" (assignment_expression "iVar10 = (*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))()" identifier = (call_expression "(*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 ))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 )" * (cast_expression "(code *)(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 )" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)\n                                 )" ( (binary_expression "&_gp + *(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)" * (cast_expression "(int *)(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0)" ( (binary_expression "PTR_wcrtomb_00056118 + (opt - 0x21U) * 4 + 0x50d0" (binary_expression "PTR_wcrtomb_00056118 + (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 iVar10;" return identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar10 = (int)(char)pbVar23[1];" (assignment_expression "iVar10 = (int)(char)pbVar23[1]" identifier = (cast_expression "(int)(char)pbVar23[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar23[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])))) ;) }))) (labeled_statement "joined_r0x00037454:\n        pbVar23 = pbVar23 + 1;" statement_identifier : (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;)) }))) (expression_statement "pbVar4 = pbVar28;" (assignment_expression "pbVar4 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return -1;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar18) {\n    return -1;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar18)" ( (binary_expression "local_2c == *(byte **)puVar18" identifier == (pointer_expression "*(byte **)puVar18" * (cast_expression "(byte **)puVar18" ( (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 "pcVar31 = internal_fnmatch;" (assignment_expression "pcVar31 = internal_fnmatch" identifier = identifier) ;) (expression_statement "pbVar4 = local_2c;" (assignment_expression "pbVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar25 = PTR___stack_chk_fail_00056494;" (assignment_expression "puVar25 = PTR___stack_chk_fail_00056494" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar25 + 0x26808;" (assignment_expression "puVar2 = puVar25 + 0x26808" identifier = (binary_expression "puVar25 + 0x26808" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar25 + 0x1ebdc)" identifier = (pointer_expression "*(undefined4 **)(puVar25 + 0x1ebdc)" * (cast_expression "(undefined4 **)(puVar25 + 0x1ebdc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1ebdc)" ( (binary_expression "puVar25 + 0x1ebdc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar28 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(pbVar28 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(pbVar28 + -0x10)" * (cast_expression "(byte **)(pbVar28 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x10)" ( (binary_expression "pbVar28 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar28 + -0x1c) = opt;" (assignment_expression "*(int *)(pbVar28 + -0x1c) = opt" (pointer_expression "*(int *)(pbVar28 + -0x1c)" * (cast_expression "(int *)(pbVar28 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c)" ( (binary_expression "pbVar28 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar28 + -0x168) = puVar2;" (assignment_expression "*(undefined **)(pbVar28 + -0x168) = puVar2" (pointer_expression "*(undefined **)(pbVar28 + -0x168)" * (cast_expression "(undefined **)(pbVar28 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x168)" ( (binary_expression "pbVar28 + -0x168" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar28 + -4) = pcVar31;" (assignment_expression "*(code **)(pbVar28 + -4) = pcVar31" (pointer_expression "*(code **)(pbVar28 + -4)" * (cast_expression "(code **)(pbVar28 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -4)" ( (binary_expression "pbVar28 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -8) = abStack_70;" (assignment_expression "*(byte **)(pbVar28 + -8) = abStack_70" (pointer_expression "*(byte **)(pbVar28 + -8)" * (cast_expression "(byte **)(pbVar28 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -8)" ( (binary_expression "pbVar28 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -0xc) = pbVar23;" (assignment_expression "*(byte **)(pbVar28 + -0xc) = pbVar23" (pointer_expression "*(byte **)(pbVar28 + -0xc)" * (cast_expression "(byte **)(pbVar28 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0xc)" ( (binary_expression "pbVar28 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pbVar28 + -0x14) = unaff_s5;" (assignment_expression "*(char **)(pbVar28 + -0x14) = unaff_s5" (pointer_expression "*(char **)(pbVar28 + -0x14)" * (cast_expression "(char **)(pbVar28 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x14)" ( (binary_expression "pbVar28 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar28 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar28 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(pbVar28 + -0x18)" * (cast_expression "(undefined **)(pbVar28 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x18)" ( (binary_expression "pbVar28 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pbVar28 + -0x20) = string;" (assignment_expression "*(char **)(pbVar28 + -0x20) = string" (pointer_expression "*(char **)(pbVar28 + -0x20)" * (cast_expression "(char **)(pbVar28 + -0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x20)" ( (binary_expression "pbVar28 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar28 + -0x24) = puVar18;" (assignment_expression "*(undefined **)(pbVar28 + -0x24) = puVar18" (pointer_expression "*(undefined **)(pbVar28 + -0x24)" * (cast_expression "(undefined **)(pbVar28 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x24)" ( (binary_expression "pbVar28 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pbVar28 + -0x28) = pattern;" (assignment_expression "*(char **)(pbVar28 + -0x28) = pattern" (pointer_expression "*(char **)(pbVar28 + -0x28)" * (cast_expression "(char **)(pbVar28 + -0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x28)" ( (binary_expression "pbVar28 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar28 + -0x148) = puVar5;" (assignment_expression "*(undefined4 **)(pbVar28 + -0x148) = puVar5" (pointer_expression "*(undefined4 **)(pbVar28 + -0x148)" * (cast_expression "(undefined4 **)(pbVar28 + -0x148)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x148)" ( (binary_expression "pbVar28 + -0x148" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -0x15c) = pbVar4 + 1;" (assignment_expression "*(byte **)(pbVar28 + -0x15c) = pbVar4 + 1" (pointer_expression "*(byte **)(pbVar28 + -0x15c)" * (cast_expression "(byte **)(pbVar28 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x15c)" ( (binary_expression "pbVar28 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (uint)*pbVar4;" (assignment_expression "uVar3 = (uint)*pbVar4" identifier = (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar28 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(pbVar28 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(pbVar28 + -0x2c)" * (cast_expression "(undefined4 *)(pbVar28 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x2c)" ( (binary_expression "pbVar28 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pbVar21 = pbVar14;" (assignment_expression "pbVar21 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar13;" (assignment_expression "pbVar22 = pbVar13" identifier = identifier) ;) (if_statement "if (uVar3 != 0) {\n    pbVar23 = pbVar28 + -0x130;\n    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);\n    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);\n    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;\n    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;\n    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;\n    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;\n    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;\n    unaff_s5 = string_end;\n    pbVar30 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    pbVar23 = pbVar28 + -0x130;\n    pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);\n    *(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);\n    *(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;\n    *(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;\n    *(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;\n    *(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;\n    *(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;\n    unaff_s5 = string_end;\n    pbVar30 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);\n  }" { (expression_statement "pbVar23 = pbVar28 + -0x130;" (assignment_expression "pbVar23 = pbVar28 + -0x130" identifier = (binary_expression "pbVar28 + -0x130" identifier + number_literal)) ;) (expression_statement "pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10);" (assignment_expression "pattern = (char *)(*(uint *)(pbVar28 + 0x10) & 0x10)" identifier = (cast_expression "(char *)(*(uint *)(pbVar28 + 0x10) & 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar28 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(pbVar28 + 0x10) & 0x10" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2);" (assignment_expression "puVar18 = (undefined *)(*(uint *)(pbVar28 + 0x10) & 2)" identifier = (cast_expression "(undefined *)(*(uint *)(pbVar28 + 0x10) & 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar28 + 0x10) & 2)" ( (binary_expression "*(uint *)(pbVar28 + 0x10) & 2" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988);" (assignment_expression "*(undefined4 *)(pbVar28 + -0x144) = *(undefined4 *)(puVar25 + 0x1e988)" (pointer_expression "*(undefined4 *)(pbVar28 + -0x144)" * (cast_expression "(undefined4 *)(pbVar28 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x144)" ( (binary_expression "pbVar28 + -0x144" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar25 + 0x1e988)" * (cast_expression "(undefined4 *)(puVar25 + 0x1e988)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1e988)" ( (binary_expression "puVar25 + 0x1e988" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150;" (assignment_expression "*(int *)(pbVar28 + -0x154) = *(int *)(puVar25 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(pbVar28 + -0x154)" * (cast_expression "(int *)(pbVar28 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x154)" ( (binary_expression "pbVar28 + -0x154" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar25 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(puVar25 + 0x1e840)" * (cast_expression "(int *)(puVar25 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1e840)" ( (binary_expression "puVar25 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4;" (assignment_expression "*(int *)(pbVar28 + -0x138) = *(int *)(puVar25 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(pbVar28 + -0x138)" * (cast_expression "(int *)(pbVar28 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x138)" ( (binary_expression "pbVar28 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar25 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(puVar25 + 0x1e99c)" * (cast_expression "(int *)(puVar25 + 0x1e99c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1e99c)" ( (binary_expression "puVar25 + 0x1e99c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724;" (assignment_expression "*(int *)(pbVar28 + -0x13c) = *(int *)(puVar25 + 0x1e840) + 0x724" (pointer_expression "*(int *)(pbVar28 + -0x13c)" * (cast_expression "(int *)(pbVar28 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x13c)" ( (binary_expression "pbVar28 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar25 + 0x1e840) + 0x724" (pointer_expression "*(int *)(puVar25 + 0x1e840)" * (cast_expression "(int *)(puVar25 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1e840)" ( (binary_expression "puVar25 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1;" (assignment_expression "*(uint *)(pbVar28 + -0x14c) = *(uint *)(pbVar28 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar28 + -0x14c)" * (cast_expression "(uint *)(pbVar28 + -0x14c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x14c)" ( (binary_expression "pbVar28 + -0x14c" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar28 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20;" (assignment_expression "*(uint *)(pbVar28 + -0x150) = *(uint *)(pbVar28 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar28 + -0x150)" * (cast_expression "(uint *)(pbVar28 + -0x150)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x150)" ( (binary_expression "pbVar28 + -0x150" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar28 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5;" (assignment_expression "*(uint *)(pbVar28 + -0x140) = *(uint *)(pbVar28 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar28 + -0x140)" * (cast_expression "(uint *)(pbVar28 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x140)" ( (binary_expression "pbVar28 + -0x140" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar28 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "unaff_s5 = string_end;" (assignment_expression "unaff_s5 = string_end" identifier = identifier) ;) (expression_statement "pbVar30 = pbVar4;" (assignment_expression "pbVar30 = pbVar4" identifier = identifier) ;) (do_statement "do {\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    } while (uVar3 != 0);" do (compound_statement "{\n      uVar19 = uVar3;\n      if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar22 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar22;\n      if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar30 = *(byte **)(pbVar28 + -0x15c);\n      unaff_s5 = (char *)0x0;\n      uVar3 = (uint)*pbVar30;\n      pbVar22 = pbVar22 + 1;\n      *(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;\n    }" { (expression_statement "uVar19 = uVar3;" (assignment_expression "uVar19 = uVar3" identifier = identifier) ;) (if_statement "if (pattern != (char *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 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 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7dac))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7dac))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7dac))" ( (pointer_expression "**(code **)(puVar2 + -0x7dac)" * (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar28 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar28 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar28 + -0x168)" * (cast_expression "(undefined **)(pbVar28 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x168)" ( (binary_expression "pbVar28 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);" (assignment_expression "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar6 + uVar3 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4 + 3)" ( (binary_expression "*piVar6 + uVar3 * 4 + 3" (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "uVar3 = uVar19 - 0x21 & 0xff;" (assignment_expression "uVar3 = uVar19 - 0x21 & 0xff" identifier = (binary_expression "uVar19 - 0x21 & 0xff" (binary_expression "uVar19 - 0x21" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar3 < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }" if (parenthesized_expression "(uVar3 < 0x3c)" ( (binary_expression "uVar3 < 0x3c" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();\n        return iVar10;\n      }" { comment comment (expression_statement "iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))();" (assignment_expression "iVar10 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)" * (cast_expression "(int *)(*(int *)(pbVar28 + -0x154) + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar28 + -0x154) + uVar3 * 4)" ( (binary_expression "*(int *)(pbVar28 + -0x154) + uVar3 * 4" (pointer_expression "*(int *)(pbVar28 + -0x154)" * (cast_expression "(int *)(pbVar28 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x154)" ( (binary_expression "pbVar28 + -0x154" identifier + number_literal) )))) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "uVar3 = uVar19;" (assignment_expression "uVar3 = uVar19" identifier = identifier) ;) (if_statement "if (pbVar22 == pbVar14) goto LAB_00037c78;" if (parenthesized_expression "(pbVar22 == pbVar14)" ( (binary_expression "pbVar22 == pbVar14" identifier == identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "uVar3 = (uint)*pbVar22;" (assignment_expression "uVar3 = (uint)*pbVar22" identifier = (binary_expression "(uint)*pbVar22" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (pattern != (char *)0x0) {\n        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 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        pcVar31 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar28 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar31)();\n        puVar2 = *(undefined **)(pbVar28 + -0x168);\n        uVar19 = *(uint *)(pbVar28 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }" { (expression_statement "pcVar31 = *(code **)(puVar2 + -0x7dac);" (assignment_expression "pcVar31 = *(code **)(puVar2 + -0x7dac)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pbVar28 + -0x158) = uVar19;" (assignment_expression "*(uint *)(pbVar28 + -0x158) = uVar19" (pointer_expression "*(uint *)(pbVar28 + -0x158)" * (cast_expression "(uint *)(pbVar28 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x158)" ( (binary_expression "pbVar28 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = (int *)(*pcVar31)();" (assignment_expression "piVar6 = (int *)(*pcVar31)()" identifier = (cast_expression "(int *)(*pcVar31)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar28 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar28 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar28 + -0x168)" * (cast_expression "(undefined **)(pbVar28 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x168)" ( (binary_expression "pbVar28 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(pbVar28 + -0x158);" (assignment_expression "uVar19 = *(uint *)(pbVar28 + -0x158)" identifier = (pointer_expression "*(uint *)(pbVar28 + -0x158)" * (cast_expression "(uint *)(pbVar28 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x158)" ( (binary_expression "pbVar28 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(*piVar6 + uVar3 * 4);" (assignment_expression "uVar3 = *(uint *)(*piVar6 + uVar3 * 4)" identifier = (pointer_expression "*(uint *)(*piVar6 + uVar3 * 4)" * (cast_expression "(uint *)(*piVar6 + uVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4)" ( (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if (uVar3 != uVar19) goto LAB_00037c78;" if (parenthesized_expression "(uVar3 != uVar19)" ( (binary_expression "uVar3 != uVar19" identifier != identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "pbVar30 = *(byte **)(pbVar28 + -0x15c);" (assignment_expression "pbVar30 = *(byte **)(pbVar28 + -0x15c)" identifier = (pointer_expression "*(byte **)(pbVar28 + -0x15c)" * (cast_expression "(byte **)(pbVar28 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x15c)" ( (binary_expression "pbVar28 + -0x15c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (char *)0x0;" (assignment_expression "unaff_s5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar3 = (uint)*pbVar30;" (assignment_expression "uVar3 = (uint)*pbVar30" identifier = (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(pbVar28 + -0x15c) = pbVar30 + 1;" (assignment_expression "*(byte **)(pbVar28 + -0x15c) = pbVar30 + 1" (pointer_expression "*(byte **)(pbVar28 + -0x15c)" * (cast_expression "(byte **)(pbVar28 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x15c)" ( (binary_expression "pbVar28 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (pbVar22 != pbVar14) {\n    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar22 != pbVar14)" ( (binary_expression "pbVar22 != pbVar14" identifier != identifier) )) (compound_statement "{\n    if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }\n  }" { (if_statement "if ((*(uint *)(pbVar28 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }" if (parenthesized_expression "((*(uint *)(pbVar28 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(pbVar28 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(pbVar28 + 0x10) & 8)" ( (binary_expression "*(uint *)(pbVar28 + 0x10) & 8" (pointer_expression "*(uint *)(pbVar28 + 0x10)" * (cast_expression "(uint *)(pbVar28 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x10)" ( (binary_expression "pbVar28 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar7 = 1;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }" else (compound_statement "{\n      uVar7 = (uint)(*pbVar22 != 0x2f);\n    }" { (expression_statement "uVar7 = (uint)(*pbVar22 != 0x2f);" (assignment_expression "uVar7 = (uint)(*pbVar22 != 0x2f)" identifier = (call_expression "(uint)(*pbVar22 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar22 != 0x2f)" ( (binary_expression "*pbVar22 != 0x2f" (pointer_expression "*pbVar22" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00037c78:\n  iVar10 = *(int *)(pbVar28 + -0x2c);" statement_identifier : (expression_statement "iVar10 = *(int *)(pbVar28 + -0x2c);" (assignment_expression "iVar10 = *(int *)(pbVar28 + -0x2c)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x2c)" * (cast_expression "(int *)(pbVar28 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x2c)" ( (binary_expression "pbVar28 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar10 == **(int **)(pbVar28 + -0x148)) {\n    return uVar7;\n  }" if (parenthesized_expression "(iVar10 == **(int **)(pbVar28 + -0x148))" ( (binary_expression "iVar10 == **(int **)(pbVar28 + -0x148)" identifier == (pointer_expression "**(int **)(pbVar28 + -0x148)" * (pointer_expression "*(int **)(pbVar28 + -0x148)" * (cast_expression "(int **)(pbVar28 + -0x148)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x148)" ( (binary_expression "pbVar28 + -0x148" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) })) (expression_statement "pcVar31 = *(code **)(puVar2 + -0x7c4c);" (assignment_expression "pcVar31 = *(code **)(puVar2 + -0x7c4c)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7c4c)" * (cast_expression "(code **)(puVar2 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7c4c)" ( (binary_expression "puVar2 + -0x7c4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar32 = rpl_fnmatch;" (assignment_expression "pcVar32 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar26 = *(code **)(pcVar31 + 0x1dd98);" (assignment_expression "pcVar26 = *(code **)(pcVar31 + 0x1dd98)" identifier = (pointer_expression "*(code **)(pcVar31 + 0x1dd98)" * (cast_expression "(code **)(pcVar31 + 0x1dd98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x1dd98)" ( (binary_expression "pcVar31 + 0x1dd98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(pbVar28 + -0x1a4) = puVar18;" (assignment_expression "*(undefined **)(pbVar28 + -0x1a4) = puVar18" (pointer_expression "*(undefined **)(pbVar28 + -0x1a4)" * (cast_expression "(undefined **)(pbVar28 + -0x1a4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1a4)" ( (binary_expression "pbVar28 + -0x1a4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar31 + 0x1dddc);" (assignment_expression "piVar6 = *(int **)(pcVar31 + 0x1dddc)" identifier = (pointer_expression "*(int **)(pcVar31 + 0x1dddc)" * (cast_expression "(int **)(pcVar31 + 0x1dddc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar31 + 0x1dddc)" ( (binary_expression "pcVar31 + 0x1dddc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar28 + -0x188) = pbVar30;" (assignment_expression "*(byte **)(pbVar28 + -0x188) = pbVar30" (pointer_expression "*(byte **)(pbVar28 + -0x188)" * (cast_expression "(byte **)(pbVar28 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x188)" ( (binary_expression "pbVar28 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar28 + -0x1a0) = uVar3;" (assignment_expression "*(uint *)(pbVar28 + -0x1a0) = uVar3" (pointer_expression "*(uint *)(pbVar28 + -0x1a0)" * (cast_expression "(uint *)(pbVar28 + -0x1a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1a0)" ( (binary_expression "pbVar28 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08;" (assignment_expression "*(code **)(pbVar28 + -0x1d0) = pcVar31 + 0x25a08" (pointer_expression "*(code **)(pbVar28 + -0x1d0)" * (cast_expression "(code **)(pbVar28 + -0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) )))) = (binary_expression "pcVar31 + 0x25a08" identifier + number_literal)) ;) (expression_statement "*(code **)(pbVar28 + -0x184) = pcVar32;" (assignment_expression "*(code **)(pbVar28 + -0x184) = pcVar32" (pointer_expression "*(code **)(pbVar28 + -0x184)" * (cast_expression "(code **)(pbVar28 + -0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x184)" ( (binary_expression "pbVar28 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -0x18c) = pbVar23;" (assignment_expression "*(byte **)(pbVar28 + -0x18c) = pbVar23" (pointer_expression "*(byte **)(pbVar28 + -0x18c)" * (cast_expression "(byte **)(pbVar28 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x18c)" ( (binary_expression "pbVar28 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -400) = pbVar22;" (assignment_expression "*(byte **)(pbVar28 + -400) = pbVar22" (pointer_expression "*(byte **)(pbVar28 + -400)" * (cast_expression "(byte **)(pbVar28 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -400)" ( (binary_expression "pbVar28 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pbVar28 + -0x194) = unaff_s5;" (assignment_expression "*(char **)(pbVar28 + -0x194) = unaff_s5" (pointer_expression "*(char **)(pbVar28 + -0x194)" * (cast_expression "(char **)(pbVar28 + -0x194)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x194)" ( (binary_expression "pbVar28 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar28 + -0x198) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar28 + -0x198) = unaff_s4" (pointer_expression "*(undefined **)(pbVar28 + -0x198)" * (cast_expression "(undefined **)(pbVar28 + -0x198)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x198)" ( (binary_expression "pbVar28 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -0x19c) = pbVar14;" (assignment_expression "*(byte **)(pbVar28 + -0x19c) = pbVar14" (pointer_expression "*(byte **)(pbVar28 + -0x19c)" * (cast_expression "(byte **)(pbVar28 + -0x19c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x19c)" ( (binary_expression "pbVar28 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(pbVar28 + -0x1a8) = pattern;" (assignment_expression "*(char **)(pbVar28 + -0x1a8) = pattern" (pointer_expression "*(char **)(pbVar28 + -0x1a8)" * (cast_expression "(char **)(pbVar28 + -0x1a8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1a8)" ( (binary_expression "pbVar28 + -0x1a8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar28 + -0x1bc) = iVar10;" (assignment_expression "*(int *)(pbVar28 + -0x1bc) = iVar10" (pointer_expression "*(int *)(pbVar28 + -0x1bc)" * (cast_expression "(int *)(pbVar28 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1bc)" ( (binary_expression "pbVar28 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar28 + -0x1c0) = pbVar13;" (assignment_expression "*(byte **)(pbVar28 + -0x1c0) = pbVar13" (pointer_expression "*(byte **)(pbVar28 + -0x1c0)" * (cast_expression "(byte **)(pbVar28 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1c0)" ( (binary_expression "pbVar28 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar28 + -0x1ac) = *piVar6;" (assignment_expression "*(int *)(pbVar28 + -0x1ac) = *piVar6" (pointer_expression "*(int *)(pbVar28 + -0x1ac)" * (cast_expression "(int *)(pbVar28 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1ac)" ( (binary_expression "pbVar28 + -0x1ac" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = (*pcVar26)();" (assignment_expression "iVar10 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 1) {\n    puVar17 = pbVar28 + -0x1b4;\n    pcVar31 = *(code **)(iVar27 + -0x7bec);\n    puVar20 = pbVar28 + -0x1bc;\n    *(undefined4 *)(pbVar28 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar28 + -0x1b0) = 0;\n    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar27 = *(int *)(pbVar28 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 != 1)" ( (binary_expression "iVar10 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar17 = pbVar28 + -0x1b4;\n    pcVar31 = *(code **)(iVar27 + -0x7bec);\n    puVar20 = pbVar28 + -0x1bc;\n    *(undefined4 *)(pbVar28 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar28 + -0x1b0) = 0;\n    iVar10 = (*pcVar31)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar27 = *(int *)(pbVar28 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" { (expression_statement "puVar17 = pbVar28 + -0x1b4;" (assignment_expression "puVar17 = pbVar28 + -0x1b4" identifier = (binary_expression "pbVar28 + -0x1b4" identifier + number_literal)) ;) (expression_statement "pcVar31 = *(code **)(iVar27 + -0x7bec);" (assignment_expression "pcVar31 = *(code **)(iVar27 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = pbVar28 + -0x1bc;" (assignment_expression "puVar20 = pbVar28 + -0x1bc" identifier = (binary_expression "pbVar28 + -0x1bc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pbVar28 + -0x1b4) = 0;" (assignment_expression "*(undefined4 *)(pbVar28 + -0x1b4) = 0" (pointer_expression "*(undefined4 *)(pbVar28 + -0x1b4)" * (cast_expression "(undefined4 *)(pbVar28 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1b4)" ( (binary_expression "pbVar28 + -0x1b4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pbVar28 + -0x1b0) = 0;" (assignment_expression "*(undefined4 *)(pbVar28 + -0x1b0) = 0" (pointer_expression "*(undefined4 *)(pbVar28 + -0x1b0)" * (cast_expression "(undefined4 *)(pbVar28 + -0x1b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1b0)" ( (binary_expression "pbVar28 + -0x1b0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar31)(0,puVar20,0,puVar17);" (assignment_expression "iVar10 = (*pcVar31)(0,puVar20,0,puVar17)" identifier = (call_expression "(*pcVar31)(0,puVar20,0,puVar17)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(0,puVar20,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "uVar3 = iVar10 + 1;" (assignment_expression "uVar3 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar28 + -0x1c0);\n      string_00 = piVar11;\n      iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar24 = iVar10 + 1;\n      iVar27 = *(int *)(pbVar28 + -0x1d0);\n      if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar27 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar27 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar27 + -0x7c30))" ( (pointer_expression "**(code **)(iVar27 + -0x7c30)" * (pointer_expression "*(code **)(iVar27 + -0x7c30)" * (cast_expression "(code **)(iVar27 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7c30)" ( (binary_expression "iVar27 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "uVar15 = 0x129;" (assignment_expression "uVar15 = 0x129" identifier = number_literal) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(pbVar28 + -0x1c0);" (assignment_expression "piVar11 = (int *)(pbVar28 + -0x1c0)" identifier = (cast_expression "(int *)(pbVar28 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c0)" ( (binary_expression "pbVar28 + -0x1c0" identifier + number_literal) )))) ;) (expression_statement "string_00 = piVar11;" (assignment_expression "string_00 = piVar11" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17)" identifier = (call_expression "(**(code **)(iVar27 + -0x7bec))(0,piVar11,0,puVar17)" (parenthesized_expression "(**(code **)(iVar27 + -0x7bec))" ( (pointer_expression "**(code **)(iVar27 + -0x7bec)" * (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(0,piVar11,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "iVar24 = iVar10 + 1;" (assignment_expression "iVar24 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 != 0) {\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar24;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }\nLAB_00038914:\n        iVar10 = -1;\n        puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();\n        iVar27 = *(int *)(pbVar28 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(iVar27 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar27 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar27 + -0x7c30))" ( (pointer_expression "**(code **)(iVar27 + -0x7c30)" * (pointer_expression "*(code **)(iVar27 + -0x7c30)" * (cast_expression "(code **)(iVar27 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7c30)" ( (binary_expression "iVar27 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar15 = 0x12d;" (assignment_expression "uVar15 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar3 + iVar24;" (assignment_expression "uVar19 = uVar3 + iVar24" identifier = (binary_expression "uVar3 + iVar24" identifier + identifier)) ;) (if_statement "if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }" if (parenthesized_expression "((uVar3 <= uVar19) && (uVar19 < 0x40000000))" ( (binary_expression "(uVar3 <= uVar19) && (uVar19 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar19)" ( (binary_expression "uVar3 <= uVar19" identifier <= identifier) )) && (parenthesized_expression "(uVar19 < 0x40000000)" ( (binary_expression "uVar19 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);\n          return iVar10;\n        }" { (if_statement "if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar19 < 2000)" ( (binary_expression "uVar19 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);\n            string_00 = pattern_00 + uVar3;\n            (**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 * 4 + 7 & 0xfffffff8" (binary_expression "uVar19 * 4 + 7" (binary_expression "uVar19 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0);" (assignment_expression "pattern_00 = (wchar_t *)(pbVar28 + iVar8 + -0x1d0)" identifier = (cast_expression "(wchar_t *)(pbVar28 + iVar8 + -0x1d0)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + iVar8 + -0x1d0)" ( (binary_expression "pbVar28 + iVar8 + -0x1d0" (binary_expression "pbVar28 + iVar8" identifier + identifier) + number_literal) )))) ;) (expression_statement "string_00 = pattern_00 + uVar3;" (assignment_expression "string_00 = pattern_00 + uVar3" identifier = (binary_expression "pattern_00 + uVar3" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17);" (call_expression "(**(code **)(iVar27 + -0x7bec))(pattern_00,puVar20,uVar3,puVar17)" (parenthesized_expression "(**(code **)(iVar27 + -0x7bec))" ( (pointer_expression "**(code **)(iVar27 + -0x7bec)" * (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(pattern_00,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar9 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar28 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "(**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17);" (call_expression "(**(code **)(iVar27 + -0x7bec))(string_00,piVar11,iVar24,puVar17)" (parenthesized_expression "(**(code **)(iVar27 + -0x7bec))" ( (pointer_expression "**(code **)(iVar27 + -0x7bec)" * (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(string_00,piVar11,iVar24,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21;" (assignment_expression "*(byte **)(pbVar28 + iVar8 + -0x1d8) = pbVar21" (pointer_expression "*(byte **)(pbVar28 + iVar8 + -0x1d8)" * (cast_expression "(byte **)(pbVar28 + iVar8 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + iVar8 + -0x1d8)" ( (binary_expression "pbVar28 + iVar8 + -0x1d8" (binary_expression "pbVar28 + iVar8" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8));" (assignment_expression "iVar10 = internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8))" identifier = (call_expression "internal_fnwmatch(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8))" identifier (argument_list "(pattern_00,string_00,string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + iVar8 + -0x1d8))" ( identifier , identifier , (binary_expression "string_00 + iVar10" identifier + identifier) , (call_expression "SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar21 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar21 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar21 << 0x1d)" ( (binary_expression "(int)pbVar21 << 0x1d" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(pbVar28 + iVar8 + -0x1d8)" * (cast_expression "(int *)(pbVar28 + iVar8 + -0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + iVar8 + -0x1d8)" ( (binary_expression "pbVar28 + iVar8 + -0x1d8" (binary_expression "pbVar28 + iVar8" identifier + identifier) + number_literal) )))) )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            iVar8 = (**(code **)(iVar27 + -0x7c9c))();\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar31 = *(code **)(iVar27 + -0x7bec);\n            *(int *)(pbVar28 + -0x1c4) = iVar8;\n            string_00 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar31)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);\n            iVar27 = *(int *)(pbVar28 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(iVar27 + -0x7c9c))();" (assignment_expression "iVar8 = (**(code **)(iVar27 + -0x7c9c))()" identifier = (call_expression "(**(code **)(iVar27 + -0x7c9c))()" (parenthesized_expression "(**(code **)(iVar27 + -0x7c9c))" ( (pointer_expression "**(code **)(iVar27 + -0x7c9c)" * (pointer_expression "*(code **)(iVar27 + -0x7c9c)" * (cast_expression "(code **)(iVar27 + -0x7c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7c9c)" ( (binary_expression "iVar27 + -0x7c9c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00038914;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "pcVar31 = *(code **)(iVar27 + -0x7bec);" (assignment_expression "pcVar31 = *(code **)(iVar27 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar28 + -0x1c4) = iVar8;" (assignment_expression "*(int *)(pbVar28 + -0x1c4) = iVar8" (pointer_expression "*(int *)(pbVar28 + -0x1c4)" * (cast_expression "(int *)(pbVar28 + -0x1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c4)" ( (binary_expression "pbVar28 + -0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "string_00 = (int *)(iVar8 + uVar3 * 4);" (assignment_expression "string_00 = (int *)(iVar8 + uVar3 * 4)" identifier = (cast_expression "(int *)(iVar8 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + uVar3 * 4)" ( (binary_expression "iVar8 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*pcVar31)(iVar8,puVar20,uVar3,puVar17);" (call_expression "(*pcVar31)(iVar8,puVar20,uVar3,puVar17)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(iVar8,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar28 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar28 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar31 = *(code **)(iVar27 + -0x7bec);\n              *(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);\n              (*pcVar31)(string_00,piVar11,iVar24,puVar17);\n              *(byte **)(pbVar28 + -0x1d8) = pbVar21;\n              iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));\n              (**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;\n              iVar27 = *(int *)(pbVar28 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "pcVar31 = *(code **)(iVar27 + -0x7bec);" (assignment_expression "pcVar31 = *(code **)(iVar27 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar27 + -0x7bec)" * (cast_expression "(code **)(iVar27 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7bec)" ( (binary_expression "iVar27 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4);" (assignment_expression "*(undefined4 *)(pbVar28 + -0x1c4) = *(undefined4 *)(pbVar28 + -0x1c4)" (pointer_expression "*(undefined4 *)(pbVar28 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar28 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c4)" ( (binary_expression "pbVar28 + -0x1c4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar28 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar28 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c4)" ( (binary_expression "pbVar28 + -0x1c4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar31)(string_00,piVar11,iVar24,puVar17);" (call_expression "(*pcVar31)(string_00,piVar11,iVar24,puVar17)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(string_00,piVar11,iVar24,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar28 + -0x1d8) = pbVar21;" (assignment_expression "*(byte **)(pbVar28 + -0x1d8) = pbVar21" (pointer_expression "*(byte **)(pbVar28 + -0x1d8)" * (cast_expression "(byte **)(pbVar28 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1d8)" ( (binary_expression "pbVar28 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8));" (assignment_expression "iVar10 = internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8))" identifier = (call_expression "internal_fnwmatch(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8))" identifier (argument_list "(*(wchar_t **)(pbVar28 + -0x1c4),string_00,\n                                         string_00 + iVar10,\n                                         SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),\n                                         *(int *)(pbVar28 + -0x1d8))" ( (pointer_expression "*(wchar_t **)(pbVar28 + -0x1c4)" * (cast_expression "(wchar_t **)(pbVar28 + -0x1c4)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1c4)" ( (binary_expression "pbVar28 + -0x1c4" identifier + number_literal) )))) , identifier , (binary_expression "string_00 + iVar10" identifier + identifier) , (call_expression "SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar21 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar21 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar21 << 0x1d)" ( (binary_expression "(int)pbVar21 << 0x1d" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(pbVar28 + -0x1d8)" * (cast_expression "(int *)(pbVar28 + -0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d8)" ( (binary_expression "pbVar28 + -0x1d8" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))\n              ;" (call_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar28 + -0x1c4))" (parenthesized_expression "(**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20))" ( (pointer_expression "**(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20)" * (pointer_expression "*(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20)" * (cast_expression "(code **)(*(int *)(pbVar28 + -0x1d0) + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar28 + -0x1d0) + -0x7c20)" ( (binary_expression "*(int *)(pbVar28 + -0x1d0) + -0x7c20" (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pbVar28 + -0x1c4))" ( (pointer_expression "*(undefined4 *)(pbVar28 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar28 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1c4)" ( (binary_expression "pbVar28 + -0x1c4" identifier + number_literal) )))) ))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar15 = 0x147;" (assignment_expression "uVar15 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);" statement_identifier : (expression_statement "iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258);" (assignment_expression "iVar10 = (**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258)" identifier = (call_expression "(**(code **)(iVar27 + -0x7db0))\n                             (*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258)" (parenthesized_expression "(**(code **)(iVar27 + -0x7db0))" ( (pointer_expression "**(code **)(iVar27 + -0x7db0)" * (pointer_expression "*(code **)(iVar27 + -0x7db0)" * (cast_expression "(code **)(iVar27 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7db0)" ( (binary_expression "iVar27 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar27 + -0x7fc8) + 0x4f48,\n                              *(int *)(iVar27 + -0x7fc8) + 0x4f3c,uVar15,\n                              *(int *)(iVar27 + -0x7fc8) + 0x5258)" ( (binary_expression "*(int *)(iVar27 + -0x7fc8) + 0x4f48" (pointer_expression "*(int *)(iVar27 + -0x7fc8)" * (cast_expression "(int *)(iVar27 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + -0x7fc8)" ( (binary_expression "iVar27 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar27 + -0x7fc8) + 0x4f3c" (pointer_expression "*(int *)(iVar27 + -0x7fc8)" * (cast_expression "(int *)(iVar27 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + -0x7fc8)" ( (binary_expression "iVar27 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar27 + -0x7fc8) + 0x5258" (pointer_expression "*(int *)(iVar27 + -0x7fc8)" * (cast_expression "(int *)(iVar27 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + -0x7fc8)" ( (binary_expression "iVar27 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return iVar10;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        iVar10 = -1;" statement_identifier : (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;)) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar27 + -0x7cf8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar27 + -0x7cf8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar27 + -0x7cf8))()" (parenthesized_expression "(**(code **)(iVar27 + -0x7cf8))" ( (pointer_expression "**(code **)(iVar27 + -0x7cf8)" * (pointer_expression "*(code **)(iVar27 + -0x7cf8)" * (cast_expression "(code **)(iVar27 + -0x7cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7cf8)" ( (binary_expression "iVar27 + -0x7cf8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "string_00 = *(int **)(pbVar28 + -0x1c0);" (assignment_expression "string_00 = *(int **)(pbVar28 + -0x1c0)" identifier = (pointer_expression "*(int **)(pbVar28 + -0x1c0)" * (cast_expression "(int **)(pbVar28 + -0x1c0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1c0)" ( (binary_expression "pbVar28 + -0x1c0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00);" (assignment_expression "iVar10 = (**(code **)(iVar27 + -0x7cbc))(string_00)" identifier = (call_expression "(**(code **)(iVar27 + -0x7cbc))(string_00)" (parenthesized_expression "(**(code **)(iVar27 + -0x7cbc))" ( (pointer_expression "**(code **)(iVar27 + -0x7cbc)" * (pointer_expression "*(code **)(iVar27 + -0x7cbc)" * (cast_expression "(code **)(iVar27 + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7cbc)" ( (binary_expression "iVar27 + -0x7cbc" identifier + number_literal) ))))) )) (argument_list "(string_00)" ( identifier )))) ;) (expression_statement "*(byte **)(pbVar28 + -0x1d8) = pbVar21;" (assignment_expression "*(byte **)(pbVar28 + -0x1d8) = pbVar21" (pointer_expression "*(byte **)(pbVar28 + -0x1d8)" * (cast_expression "(byte **)(pbVar28 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1d8)" ( (binary_expression "pbVar28 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           );" (assignment_expression "iVar10 = internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           )" identifier = (call_expression "internal_fnmatch(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           )" identifier (argument_list "(*(char **)(pbVar28 + -0x1bc),(char *)string_00,\n                            (char *)((int)string_00 + iVar10),\n                            SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0),*(int *)(pbVar28 + -0x1d8)\n                           )" ( (pointer_expression "*(char **)(pbVar28 + -0x1bc)" * (cast_expression "(char **)(pbVar28 + -0x1bc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1bc)" ( (binary_expression "pbVar28 + -0x1bc" identifier + number_literal) )))) , (cast_expression "(char *)string_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)((int)string_00 + iVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string_00 + iVar10)" ( (binary_expression "(int)string_00 + iVar10" (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) , (call_expression "SUB41((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar21 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar21 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar21 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar21 << 0x1d)" ( (binary_expression "(int)pbVar21 << 0x1d" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(pbVar28 + -0x1d8)" * (cast_expression "(int *)(pbVar28 + -0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d8)" ( (binary_expression "pbVar28 + -0x1d8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar27 = *(int *)(pbVar28 + -0x1d0);" (assignment_expression "iVar27 = *(int *)(pbVar28 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar28 + -0x1d0)" * (cast_expression "(int *)(pbVar28 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + -0x1d0)" ( (binary_expression "pbVar28 + -0x1d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00038784:\n  piVar11 = *(int **)(pbVar28 + -0x1ac);" statement_identifier : (expression_statement "piVar11 = *(int **)(pbVar28 + -0x1ac);" (assignment_expression "piVar11 = *(int **)(pbVar28 + -0x1ac)" identifier = (pointer_expression "*(int **)(pbVar28 + -0x1ac)" * (cast_expression "(int **)(pbVar28 + -0x1ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar28 + -0x1ac)" ( (binary_expression "pbVar28 + -0x1ac" identifier + number_literal) ))))) ;)) (if_statement "if (piVar11 == (int *)*piVar6) {\n    return iVar10;\n  }" if (parenthesized_expression "(piVar11 == (int *)*piVar6)" ( (binary_expression "piVar11 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return iVar10;\n  }" { (return_statement "return iVar10;" return identifier ;) })) (expression_statement "(**(code **)(iVar27 + -0x7c4c))();" (call_expression "(**(code **)(iVar27 + -0x7c4c))()" (parenthesized_expression "(**(code **)(iVar27 + -0x7c4c))" ( (pointer_expression "**(code **)(iVar27 + -0x7c4c)" * (pointer_expression "*(code **)(iVar27 + -0x7c4c)" * (cast_expression "(code **)(iVar27 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + -0x7c4c)" ( (binary_expression "iVar27 + -0x7c4c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if ((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])) {\n    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);\n  }" if (parenthesized_expression "((piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3]))" ( (binary_expression "(piVar11[2] == string_00[2]) && (piVar11[3] == string_00[3])" (parenthesized_expression "(piVar11[2] == string_00[2])" ( (binary_expression "piVar11[2] == string_00[2]" (subscript_expression "piVar11[2]" identifier [ number_literal ]) == (subscript_expression "string_00[2]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar11[3] == string_00[3])" ( (binary_expression "piVar11[3] == string_00[3]" (subscript_expression "piVar11[3]" identifier [ number_literal ]) == (subscript_expression "string_00[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);\n  }" { (return_statement "return (uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1]);" return (call_expression "(uint)(*piVar11 == *string_00 && piVar11[1] == string_00[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar11 == *string_00 && piVar11[1] == string_00[1])" ( (binary_expression "*piVar11 == *string_00 && piVar11[1] == string_00[1]" (binary_expression "*piVar11 == *string_00" (pointer_expression "*piVar11" * identifier) == (pointer_expression "*string_00" * identifier)) && (binary_expression "piVar11[1] == string_00[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) == (subscript_expression "string_00[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "uint FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)" identifier (parameter_list "(int param_1,byte *param_2,byte *param_3,uint 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 "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint unaff_s5;" type_identifier identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "undefined1 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "byte abStack_70 [24];" type_identifier (array_declarator "abStack_70 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * 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 "puVar18 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar18 = PTR___stack_chk_guard_000564b4" identifier = identifier) ;) (expression_statement "pbVar29 = abStack_70;" (assignment_expression "pbVar29 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar31 = abStack_70;" (assignment_expression "pbVar31 = abStack_70" identifier = identifier) ;) (expression_statement "pbVar24 = param_2 + 1;" (assignment_expression "pbVar24 = 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_000564b4;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000564b4" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000564b4" * (cast_expression "(byte **)PTR___stack_chk_guard_000564b4" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" identifier = identifier) ;) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" identifier = identifier) ;) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_00056424)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_00056424)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" ( (pointer_expression "*(code *)PTR_strlen_00056424" * (cast_expression "(code *)PTR_strlen_00056424" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar26 = PTR_DAT_00056260;" (assignment_expression "puVar26 = PTR_DAT_00056260" identifier = identifier) ;) (expression_statement "iVar10 = (int)(char)param_2[1];" (assignment_expression "iVar10 = (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 (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" { (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = PTR_wcrtomb_00056118 + 0x724;" (assignment_expression "puVar2 = PTR_wcrtomb_00056118 + 0x724" identifier = (binary_expression "PTR_wcrtomb_00056118 + 0x724" identifier + number_literal)) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "pbVar4 = abStack_70;" (assignment_expression "pbVar4 = abStack_70" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar24;" (assignment_expression "unaff_s6 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" statement_identifier : (do_statement "do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" do (compound_statement "{\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    }" { (expression_statement "pbVar29 = pbVar4;" (assignment_expression "pbVar29 = pbVar4" identifier = identifier) ;) (expression_statement "unaff_s4 = puVar26;" (assignment_expression "unaff_s4 = puVar26" identifier = identifier) ;) (if_statement "if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" if (parenthesized_expression "(iVar10 == 0x5b)" ( (binary_expression "iVar10 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }" { (expression_statement "pbVar14 = &DAT_00000021;" (assignment_expression "pbVar14 = &DAT_00000021" identifier = (pointer_expression "&DAT_00000021" & identifier)) ;) (if_statement "if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" if (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) == 0)" ( (binary_expression "*(int *)(puVar26 + -0x56a0) == 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" * (cast_expression "(int *)(puVar26 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }" { (expression_statement "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);" (assignment_expression "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2)" identifier = (call_expression "(*(code *)PTR_getenv_0005644c)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0005644c)" ( (pointer_expression "*(code *)PTR_getenv_0005644c" * (cast_expression "(code *)PTR_getenv_0005644c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" identifier = (subscript_expression "pbVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" { (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 1" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037418;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037418;" goto statement_identifier ;)) (goto_statement "goto LAB_00037490;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" * (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar12 != 0x21) goto LAB_00037408;" if (parenthesized_expression "(bVar12 != 0x21)" ( (binary_expression "bVar12 != 0x21" identifier != number_literal) )) (goto_statement "goto LAB_00037408;" goto statement_identifier ;)) (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" identifier = (subscript_expression "pbVar24[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00037494:\n          pbVar4 = pbVar24 + 2;" statement_identifier : (expression_statement "pbVar4 = pbVar24 + 2;" (assignment_expression "pbVar4 = pbVar24 + 2" identifier = (binary_expression "pbVar24 + 2" identifier + number_literal)) ;)) }) (else_clause "else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" else (compound_statement "{\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" { (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" identifier = (subscript_expression "pbVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" if (parenthesized_expression "(bVar12 == 0x21)" ( (binary_expression "bVar12 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" { (labeled_statement "LAB_00037490:\n            bVar12 = pbVar24[2];" statement_identifier : (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" identifier = (subscript_expression "pbVar24[2]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00037494;" goto statement_identifier ;) })) (if_statement "if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" if (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) < 0)" ( (binary_expression "*(int *)(puVar26 + -0x56a0) < 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" * (cast_expression "(int *)(puVar26 + -0x56a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + -0x56a0)" ( (binary_expression "puVar26 + -0x56a0" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" { (labeled_statement "LAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;" statement_identifier : (if_statement "if (bVar12 == 0x5e) goto LAB_00037490;" if (parenthesized_expression "(bVar12 == 0x5e)" ( (binary_expression "bVar12 == 0x5e" identifier == number_literal) )) (goto_statement "goto LAB_00037490;" goto statement_identifier ;))) })) (labeled_statement "LAB_00037418:\n          pbVar4 = pbVar24 + 1;" statement_identifier : (expression_statement "pbVar4 = pbVar24 + 1;" (assignment_expression "pbVar4 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;)) }))) (if_statement "if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar4 = pbVar4 + 1;\n        }" { (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar13 = (byte *)0x5d;" (assignment_expression "pbVar13 = (byte *)0x5d" identifier = (cast_expression "(byte *)0x5d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" { (expression_statement "bVar12 = *pbVar4;" (assignment_expression "bVar12 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "pbVar24 = pbVar4 + 1;" (assignment_expression "pbVar24 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (if_statement "if (bVar12 == 0x5d) break;" if (parenthesized_expression "(bVar12 == 0x5d)" ( (binary_expression "bVar12 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar4 = pbVar24;" (assignment_expression "pbVar4 = pbVar24" identifier = identifier) ;) (if_statement "if (bVar12 == 0) goto LAB_000372e4;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000372e4;" goto statement_identifier ;)) })) (expression_statement "iVar10 = (int)(char)pbVar4[1];" (assignment_expression "iVar10 = (int)(char)pbVar4[1]" identifier = (cast_expression "(int)(char)pbVar4[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar4[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar4[1]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" else (compound_statement "{\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" { (expression_statement "pbVar13 = &DAT_c0000601;" (assignment_expression "pbVar13 = &DAT_c0000601" identifier = (pointer_expression "&DAT_c0000601" & identifier)) ;) (expression_statement "uVar3 = iVar10 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar10 - 0x21U & 0xff" identifier = (binary_expression "iVar10 - 0x21U & 0xff" (binary_expression "iVar10 - 0x21U" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar14 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar14 = (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 (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" if (parenthesized_expression "(pbVar14 == (byte *)0x0)" ( (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }" { (if_statement "if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" if (parenthesized_expression "((iVar10 == 0x7c) && (unaff_s5 == 0))" ( (binary_expression "(iVar10 == 0x7c) && (unaff_s5 == 0)" (parenthesized_expression "(iVar10 == 0x7c)" ( (binary_expression "iVar10 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" { (expression_statement "pbVar4 = local_48;" (assignment_expression "pbVar4 = local_48" identifier = identifier) ;) (if_statement "if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (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              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }" { (expression_statement "pbVar4 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "pbVar4 = pbVar24 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar24 + (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)(pbVar4 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar24 + -(int)unaff_s6;" (assignment_expression "pbVar14 = pbVar24 + -(int)unaff_s6" identifier = (binary_expression "pbVar24 + -(int)unaff_s6" identifier + (unary_expression "-(int)unaff_s6" - (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar22 = pbVar24 + 1;" (assignment_expression "pbVar22 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4 + 7)" ( (binary_expression "pbVar4 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar30 = pbVar29 + iVar28;" (assignment_expression "puVar30 = pbVar29 + iVar28" identifier = (binary_expression "pbVar29 + iVar28" identifier + identifier)) ;) (expression_statement "piVar6 = (int *)(pbVar29 + iVar28 + 0x18);" (assignment_expression "piVar6 = (int *)(pbVar29 + iVar28 + 0x18)" identifier = (cast_expression "(int *)(pbVar29 + iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + iVar28 + 0x18)" ( (binary_expression "pbVar29 + iVar28 + 0x18" (binary_expression "pbVar29 + iVar28" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29 + iVar28 + 0x1c)" ( (binary_expression "pbVar29 + iVar28 + 0x1c" (binary_expression "pbVar29 + iVar28" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" identifier = identifier) ;) (expression_statement "unaff_s6 = pbVar22;" (assignment_expression "unaff_s6 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar22;" (assignment_expression "pbVar24 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar29 + iVar28;" (assignment_expression "pbVar29 = pbVar29 + iVar28" identifier = (binary_expression "pbVar29 + iVar28" identifier + identifier)) ;) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" identifier = identifier) ;) (expression_statement "pbVar4 = puVar30;" (assignment_expression "pbVar4 = puVar30" identifier = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0003728c;" goto statement_identifier ;) })) (labeled_statement "LAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];" statement_identifier : (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;)) }) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" else (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" { (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 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            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }" { (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) (if_statement "if (iVar10 != 0x28) goto joined_r0x00037454;" if (parenthesized_expression "(iVar10 != 0x28)" ( (binary_expression "iVar10 != 0x28" identifier != number_literal) )) (goto_statement "goto joined_r0x00037454;" goto statement_identifier ;)) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s5 = unaff_s5 + 1;" (assignment_expression "unaff_s5 = unaff_s5 + 1" identifier = (binary_expression "unaff_s5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" identifier = number_literal) ;) })) (if_statement "if (iVar10 != 0x29) goto LAB_00037450;" if (parenthesized_expression "(iVar10 != 0x29)" ( (binary_expression "iVar10 != 0x29" identifier != number_literal) )) (goto_statement "goto LAB_00037450;" goto statement_identifier ;)) (expression_statement "bVar1 = unaff_s5 == 0;" (assignment_expression "bVar1 = unaff_s5 == 0" identifier = (binary_expression "unaff_s5 == 0" 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)) ;) (if_statement "if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" { (expression_statement "unaff_s5 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s5 = (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) )))) ;) (if_statement "if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" if (parenthesized_expression "(unaff_s5 == 0)" ( (binary_expression "unaff_s5 == 0" identifier == number_literal) )) (compound_statement "{\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" { (expression_statement "local_48 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "local_48 = pbVar24 + (1 - (int)unaff_s6)" identifier = (binary_expression "pbVar24 + (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_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" if (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" { (expression_statement "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 + 7)" ( (binary_expression "local_48 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" identifier = (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" ( (pointer_expression "*(code *)PTR_mempcpy_000564a4" * (cast_expression "(code *)PTR_mempcpy_000564a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" ( (binary_expression "pbVar29 + iVar10 + 0x1c" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) , identifier , (binary_expression "(int)pbVar24 - (int)unaff_s6" (cast_expression "(int)pbVar24" ( (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 *)(pbVar29 + iVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18)" * (cast_expression "(undefined4 *)(pbVar29 + iVar10 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" ( (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*local_34 = (int)(pbVar29 + iVar10 + 0x18);" (assignment_expression "*local_34 = (int)(pbVar29 + iVar10 + 0x18)" (pointer_expression "*local_34" * identifier) = (cast_expression "(int)(pbVar29 + iVar10 + 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" ( (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" identifier + identifier) + number_literal) )))) ;) (if_statement "if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\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_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4ef0" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" if (parenthesized_expression "(pbVar24[-1] != 0x29)" ( (binary_expression "pbVar24[-1] != 0x29" (subscript_expression "pbVar24[-1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f00" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (if_statement "if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" if (parenthesized_expression "(0x1f < param_1 - 0x21U)" ( (binary_expression "0x1f < param_1 - 0x21U" number_literal < (binary_expression "param_1 - 0x21U" identifier - number_literal)) )) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" { (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" identifier = (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" ( (pointer_expression "*(code *)PTR___assert_fail_00056330" * (cast_expression "(code *)PTR___assert_fail_00056330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" ( (binary_expression "PTR_wcrtomb_00056118 + 0x4f14" identifier + number_literal) , (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" identifier + number_literal) , number_literal , (binary_expression "PTR_wcrtomb_00056118 + 0x5240" identifier + number_literal) )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" ( (binary_expression "&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" * (cast_expression "(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" ( (binary_expression "PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0" (binary_expression "PTR_wcrtomb_00056118 +\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 ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" identifier = (cast_expression "(int)(char)pbVar24[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar24[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar24[1]" identifier [ number_literal ])))) ;) }))) (labeled_statement "joined_r0x00037454:\n        pbVar24 = pbVar24 + 1;" statement_identifier : (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;)) }))) (expression_statement "pbVar4 = pbVar29;" (assignment_expression "pbVar4 = pbVar29" identifier = identifier) ;) }) while (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)puVar18)" ( (binary_expression "local_2c == *(byte **)puVar18" identifier == (pointer_expression "*(byte **)puVar18" * (cast_expression "(byte **)puVar18" ( (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 "pcVar32 = FUN_000378d8;" (assignment_expression "pcVar32 = FUN_000378d8" identifier = identifier) ;) (expression_statement "pbVar4 = local_2c;" (assignment_expression "pbVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_00056494;" (assignment_expression "puVar26 = PTR___stack_chk_fail_00056494" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" * (cast_expression "(code *)PTR___stack_chk_fail_00056494" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puVar26 + 0x26808;" (assignment_expression "puVar2 = puVar26 + 0x26808" identifier = (binary_expression "puVar26 + 0x26808" identifier + number_literal)) ;) (expression_statement "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc)" identifier = (pointer_expression "*(undefined4 **)(puVar26 + 0x1ebdc)" * (cast_expression "(undefined4 **)(puVar26 + 0x1ebdc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x1ebdc)" ( (binary_expression "puVar26 + 0x1ebdc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar29 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(pbVar29 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(pbVar29 + -0x10)" * (cast_expression "(byte **)(pbVar29 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x10)" ( (binary_expression "pbVar29 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1c) = param_1;" (assignment_expression "*(int *)(pbVar29 + -0x1c) = param_1" (pointer_expression "*(int *)(pbVar29 + -0x1c)" * (cast_expression "(int *)(pbVar29 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c)" ( (binary_expression "pbVar29 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x168) = puVar2;" (assignment_expression "*(undefined **)(pbVar29 + -0x168) = puVar2" (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar29 + -4) = pcVar32;" (assignment_expression "*(code **)(pbVar29 + -4) = pcVar32" (pointer_expression "*(code **)(pbVar29 + -4)" * (cast_expression "(code **)(pbVar29 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -4)" ( (binary_expression "pbVar29 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -8) = abStack_70;" (assignment_expression "*(byte **)(pbVar29 + -8) = abStack_70" (pointer_expression "*(byte **)(pbVar29 + -8)" * (cast_expression "(byte **)(pbVar29 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -8)" ( (binary_expression "pbVar29 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0xc) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0xc) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0xc)" * (cast_expression "(byte **)(pbVar29 + -0xc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0xc)" ( (binary_expression "pbVar29 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x14)" * (cast_expression "(uint *)(pbVar29 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x14)" ( (binary_expression "pbVar29 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x18)" * (cast_expression "(undefined **)(pbVar29 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x18)" ( (binary_expression "pbVar29 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x20) = param_3;" (assignment_expression "*(byte **)(pbVar29 + -0x20) = param_3" (pointer_expression "*(byte **)(pbVar29 + -0x20)" * (cast_expression "(byte **)(pbVar29 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x20)" ( (binary_expression "pbVar29 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x24) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x24) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x24)" * (cast_expression "(undefined **)(pbVar29 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x24)" ( (binary_expression "pbVar29 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x28) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x28) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x28)" * (cast_expression "(byte **)(pbVar29 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x28)" ( (binary_expression "pbVar29 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(pbVar29 + -0x148) = puVar5;" (assignment_expression "*(undefined4 **)(pbVar29 + -0x148) = puVar5" (pointer_expression "*(undefined4 **)(pbVar29 + -0x148)" * (cast_expression "(undefined4 **)(pbVar29 + -0x148)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x148)" ( (binary_expression "pbVar29 + -0x148" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (uint)*pbVar4;" (assignment_expression "uVar3 = (uint)*pbVar4" identifier = (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(pbVar29 + -0x2c)" * (cast_expression "(undefined4 *)(pbVar29 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x2c)" ( (binary_expression "pbVar29 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pbVar22 = pbVar14;" (assignment_expression "pbVar22 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" identifier = identifier) ;) (if_statement "if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" { (expression_statement "pbVar24 = pbVar29 + -0x130;" (assignment_expression "pbVar24 = pbVar29 + -0x130" identifier = (binary_expression "pbVar29 + -0x130" identifier + number_literal)) ;) (expression_statement "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);" (assignment_expression "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" identifier = (cast_expression "(byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x10" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);" (assignment_expression "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" identifier = (cast_expression "(undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 2)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 2" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x144)" * (cast_expression "(undefined4 *)(pbVar29 + -0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x144)" ( (binary_expression "pbVar29 + -0x144" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar26 + 0x1e988)" * (cast_expression "(undefined4 *)(puVar26 + 0x1e988)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e988)" ( (binary_expression "puVar26 + 0x1e988" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;" (assignment_expression "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(pbVar29 + -0x154)" * (cast_expression "(int *)(pbVar29 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x154)" ( (binary_expression "pbVar29 + -0x154" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(puVar26 + 0x1e840)" * (cast_expression "(int *)(puVar26 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e840)" ( (binary_expression "puVar26 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;" (assignment_expression "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(pbVar29 + -0x138)" * (cast_expression "(int *)(pbVar29 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x138)" ( (binary_expression "pbVar29 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(puVar26 + 0x1e99c)" * (cast_expression "(int *)(puVar26 + 0x1e99c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e99c)" ( (binary_expression "puVar26 + 0x1e99c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;" (assignment_expression "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(pbVar29 + -0x13c)" * (cast_expression "(int *)(pbVar29 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x13c)" ( (binary_expression "pbVar29 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(puVar26 + 0x1e840)" * (cast_expression "(int *)(puVar26 + 0x1e840)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x1e840)" ( (binary_expression "puVar26 + 0x1e840" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;" (assignment_expression "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + -0x14c)" * (cast_expression "(uint *)(pbVar29 + -0x14c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x14c)" ( (binary_expression "pbVar29 + -0x14c" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;" (assignment_expression "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + -0x150)" * (cast_expression "(uint *)(pbVar29 + -0x150)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x150)" ( (binary_expression "pbVar29 + -0x150" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;" (assignment_expression "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + -0x140)" * (cast_expression "(uint *)(pbVar29 + -0x140)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x140)" ( (binary_expression "pbVar29 + -0x140" identifier + number_literal) )))) = (binary_expression "*(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "unaff_s5 = param_4;" (assignment_expression "unaff_s5 = param_4" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar4;" (assignment_expression "pbVar31 = pbVar4" identifier = identifier) ;) (do_statement "do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);" do (compound_statement "{\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    }" { (expression_statement "uVar19 = uVar3;" (assignment_expression "uVar19 = uVar3" identifier = identifier) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" { (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + -0x7dac))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + -0x7dac))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7dac))" ( (pointer_expression "**(code **)(puVar2 + -0x7dac)" * (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);" (assignment_expression "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar6 + uVar3 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4 + 3)" ( (binary_expression "*piVar6 + uVar3 * 4 + 3" (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (expression_statement "uVar3 = uVar19 - 0x21 & 0xff;" (assignment_expression "uVar3 = uVar19 - 0x21 & 0xff" identifier = (binary_expression "uVar19 - 0x21 & 0xff" (binary_expression "uVar19 - 0x21" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" if (parenthesized_expression "(uVar3 < 0x3c)" ( (binary_expression "uVar3 < 0x3c" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" { (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" identifier = (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))" ( (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" * (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" ( (binary_expression "puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" * (cast_expression "(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" ( (binary_expression "*(int *)(pbVar29 + -0x154) + uVar3 * 4" (pointer_expression "*(int *)(pbVar29 + -0x154)" * (cast_expression "(int *)(pbVar29 + -0x154)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x154)" ( (binary_expression "pbVar29 + -0x154" identifier + number_literal) )))) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "uVar3 = uVar19;" (assignment_expression "uVar3 = uVar19" identifier = identifier) ;) (if_statement "if (pbVar23 == pbVar14) goto LAB_00037c78;" if (parenthesized_expression "(pbVar23 == pbVar14)" ( (binary_expression "pbVar23 == pbVar14" identifier == identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "uVar3 = (uint)*pbVar23;" (assignment_expression "uVar3 = (uint)*pbVar23" identifier = (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 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        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }" { (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7dac);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7dac)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7dac)" * (cast_expression "(code **)(puVar2 + -0x7dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7dac)" ( (binary_expression "puVar2 + -0x7dac" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(pbVar29 + -0x158) = uVar19;" (assignment_expression "*(uint *)(pbVar29 + -0x158) = uVar19" (pointer_expression "*(uint *)(pbVar29 + -0x158)" * (cast_expression "(uint *)(pbVar29 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x158)" ( (binary_expression "pbVar29 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = (int *)(*pcVar32)();" (assignment_expression "piVar6 = (int *)(*pcVar32)()" identifier = (cast_expression "(int *)(*pcVar32)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" identifier = (pointer_expression "*(undefined **)(pbVar29 + -0x168)" * (cast_expression "(undefined **)(pbVar29 + -0x168)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x168)" ( (binary_expression "pbVar29 + -0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(pbVar29 + -0x158);" (assignment_expression "uVar19 = *(uint *)(pbVar29 + -0x158)" identifier = (pointer_expression "*(uint *)(pbVar29 + -0x158)" * (cast_expression "(uint *)(pbVar29 + -0x158)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x158)" ( (binary_expression "pbVar29 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(*piVar6 + uVar3 * 4);" (assignment_expression "uVar3 = *(uint *)(*piVar6 + uVar3 * 4)" identifier = (pointer_expression "*(uint *)(*piVar6 + uVar3 * 4)" * (cast_expression "(uint *)(*piVar6 + uVar3 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar6 + uVar3 * 4)" ( (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" * identifier) + (binary_expression "uVar3 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (if_statement "if (uVar3 != uVar19) goto LAB_00037c78;" if (parenthesized_expression "(uVar3 != uVar19)" ( (binary_expression "uVar3 != uVar19" identifier != identifier) )) (goto_statement "goto LAB_00037c78;" goto statement_identifier ;)) (expression_statement "pbVar31 = *(byte **)(pbVar29 + -0x15c);" (assignment_expression "pbVar31 = *(byte **)(pbVar29 + -0x15c)" identifier = (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = (uint)*pbVar31;" (assignment_expression "uVar3 = (uint)*pbVar31" identifier = (binary_expression "(uint)*pbVar31" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" * (cast_expression "(byte **)(pbVar29 + -0x15c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x15c)" ( (binary_expression "pbVar29 + -0x15c" identifier + number_literal) )))) = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" if (parenthesized_expression "(pbVar23 != pbVar14)" ( (binary_expression "pbVar23 != pbVar14" identifier != identifier) )) (compound_statement "{\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" { (if_statement "if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" if (parenthesized_expression "((*(uint *)(pbVar29 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(pbVar29 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 8)" ( (binary_expression "*(uint *)(pbVar29 + 0x10) & 8" (pointer_expression "*(uint *)(pbVar29 + 0x10)" * (cast_expression "(uint *)(pbVar29 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + 0x10)" ( (binary_expression "pbVar29 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar7 = 1;\n    }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" else (compound_statement "{\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" { (expression_statement "uVar7 = (uint)(*pbVar23 != 0x2f);" (assignment_expression "uVar7 = (uint)(*pbVar23 != 0x2f)" identifier = (call_expression "(uint)(*pbVar23 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar23 != 0x2f)" ( (binary_expression "*pbVar23 != 0x2f" (pointer_expression "*pbVar23" * identifier) != number_literal) )))) ;) }))) })) (labeled_statement "LAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);" statement_identifier : (expression_statement "iVar10 = *(int *)(pbVar29 + -0x2c);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x2c)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x2c)" * (cast_expression "(int *)(pbVar29 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x2c)" ( (binary_expression "pbVar29 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }" if (parenthesized_expression "(iVar10 == **(int **)(pbVar29 + -0x148))" ( (binary_expression "iVar10 == **(int **)(pbVar29 + -0x148)" identifier == (pointer_expression "**(int **)(pbVar29 + -0x148)" * (pointer_expression "*(int **)(pbVar29 + -0x148)" * (cast_expression "(int **)(pbVar29 + -0x148)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x148)" ( (binary_expression "pbVar29 + -0x148" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar7;\n  }" { (return_statement "return uVar7;" return identifier ;) })) (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7c4c);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7c4c)" identifier = (pointer_expression "*(code **)(puVar2 + -0x7c4c)" * (cast_expression "(code **)(puVar2 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x7c4c)" ( (binary_expression "puVar2 + -0x7c4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = rpl_fnmatch;" (assignment_expression "pcVar33 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar27 = *(code **)(pcVar32 + 0x1dd98);" (assignment_expression "pcVar27 = *(code **)(pcVar32 + 0x1dd98)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1dd98)" * (cast_expression "(code **)(pcVar32 + 0x1dd98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1dd98)" ( (binary_expression "pcVar32 + 0x1dd98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(pbVar29 + -0x1a4) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x1a4) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x1a4)" * (cast_expression "(undefined **)(pbVar29 + -0x1a4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1a4)" ( (binary_expression "pbVar29 + -0x1a4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar6 = *(int **)(pcVar32 + 0x1dddc);" (assignment_expression "piVar6 = *(int **)(pcVar32 + 0x1dddc)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x1dddc)" * (cast_expression "(int **)(pcVar32 + 0x1dddc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1dddc)" ( (binary_expression "pcVar32 + 0x1dddc" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar29 + -0x188) = pbVar31;" (assignment_expression "*(byte **)(pbVar29 + -0x188) = pbVar31" (pointer_expression "*(byte **)(pbVar29 + -0x188)" * (cast_expression "(byte **)(pbVar29 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x188)" ( (binary_expression "pbVar29 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x1a0) = uVar3;" (assignment_expression "*(uint *)(pbVar29 + -0x1a0) = uVar3" (pointer_expression "*(uint *)(pbVar29 + -0x1a0)" * (cast_expression "(uint *)(pbVar29 + -0x1a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1a0)" ( (binary_expression "pbVar29 + -0x1a0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;" (assignment_expression "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08" (pointer_expression "*(code **)(pbVar29 + -0x1d0)" * (cast_expression "(code **)(pbVar29 + -0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) = (binary_expression "pcVar32 + 0x25a08" identifier + number_literal)) ;) (expression_statement "*(code **)(pbVar29 + -0x184) = pcVar33;" (assignment_expression "*(code **)(pbVar29 + -0x184) = pcVar33" (pointer_expression "*(code **)(pbVar29 + -0x184)" * (cast_expression "(code **)(pbVar29 + -0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x184)" ( (binary_expression "pbVar29 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x18c) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0x18c) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0x18c)" * (cast_expression "(byte **)(pbVar29 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x18c)" ( (binary_expression "pbVar29 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -400) = pbVar23;" (assignment_expression "*(byte **)(pbVar29 + -400) = pbVar23" (pointer_expression "*(byte **)(pbVar29 + -400)" * (cast_expression "(byte **)(pbVar29 + -400)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -400)" ( (binary_expression "pbVar29 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pbVar29 + -0x194) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x194) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x194)" * (cast_expression "(uint *)(pbVar29 + -0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x194)" ( (binary_expression "pbVar29 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(pbVar29 + -0x198) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x198) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x198)" * (cast_expression "(undefined **)(pbVar29 + -0x198)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x198)" ( (binary_expression "pbVar29 + -0x198" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x19c) = pbVar14;" (assignment_expression "*(byte **)(pbVar29 + -0x19c) = pbVar14" (pointer_expression "*(byte **)(pbVar29 + -0x19c)" * (cast_expression "(byte **)(pbVar29 + -0x19c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x19c)" ( (binary_expression "pbVar29 + -0x19c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x1a8) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x1a8) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x1a8)" * (cast_expression "(byte **)(pbVar29 + -0x1a8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1a8)" ( (binary_expression "pbVar29 + -0x1a8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1bc) = iVar10;" (assignment_expression "*(int *)(pbVar29 + -0x1bc) = iVar10" (pointer_expression "*(int *)(pbVar29 + -0x1bc)" * (cast_expression "(int *)(pbVar29 + -0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1bc)" ( (binary_expression "pbVar29 + -0x1bc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar29 + -0x1c0) = pbVar13;" (assignment_expression "*(byte **)(pbVar29 + -0x1c0) = pbVar13" (pointer_expression "*(byte **)(pbVar29 + -0x1c0)" * (cast_expression "(byte **)(pbVar29 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pbVar29 + -0x1ac) = *piVar6;" (assignment_expression "*(int *)(pbVar29 + -0x1ac) = *piVar6" (pointer_expression "*(int *)(pbVar29 + -0x1ac)" * (cast_expression "(int *)(pbVar29 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1ac)" ( (binary_expression "pbVar29 + -0x1ac" identifier + number_literal) )))) = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "iVar10 = (*pcVar27)();" (assignment_expression "iVar10 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" if (parenthesized_expression "(iVar10 != 1)" ( (binary_expression "iVar10 != 1" identifier != number_literal) )) (compound_statement "{\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" { (expression_statement "puVar17 = pbVar29 + -0x1b4;" (assignment_expression "puVar17 = pbVar29 + -0x1b4" identifier = (binary_expression "pbVar29 + -0x1b4" identifier + number_literal)) ;) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = pbVar29 + -0x1bc;" (assignment_expression "puVar20 = pbVar29 + -0x1bc" identifier = (binary_expression "pbVar29 + -0x1bc" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b4) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b4) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1b4)" ( (binary_expression "pbVar29 + -0x1b4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b0) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b0) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b0)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1b0)" ( (binary_expression "pbVar29 + -0x1b0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = (*pcVar32)(0,puVar20,0,puVar17);" (assignment_expression "iVar10 = (*pcVar32)(0,puVar20,0,puVar17)" identifier = (call_expression "(*pcVar32)(0,puVar20,0,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(0,puVar20,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "uVar3 = iVar10 + 1;" (assignment_expression "uVar3 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" { (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" ( (pointer_expression "**(code **)(iVar28 + -0x7c30)" * (pointer_expression "*(code **)(iVar28 + -0x7c30)" * (cast_expression "(code **)(iVar28 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c30)" ( (binary_expression "iVar28 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "uVar15 = 0x129;" (assignment_expression "uVar15 = 0x129" identifier = number_literal) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar10 == 0) goto LAB_000389f4;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;)) (expression_statement "piVar11 = (int *)(pbVar29 + -0x1c0);" (assignment_expression "piVar11 = (int *)(pbVar29 + -0x1c0)" identifier = (cast_expression "(int *)(pbVar29 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(0,piVar11,0,puVar17)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "iVar25 = iVar10 + 1;" (assignment_expression "iVar25 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" { (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" ( (pointer_expression "**(code **)(iVar28 + -0x7c30)" * (pointer_expression "*(code **)(iVar28 + -0x7c30)" * (cast_expression "(code **)(iVar28 + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c30)" ( (binary_expression "iVar28 + -0x7c30" identifier + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" { (expression_statement "uVar15 = 0x12d;" (assignment_expression "uVar15 = 0x12d" identifier = number_literal) ;) (goto_statement "goto LAB_000389f4;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar3 + iVar25;" (assignment_expression "uVar19 = uVar3 + iVar25" identifier = (binary_expression "uVar3 + iVar25" identifier + identifier)) ;) (if_statement "if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" if (parenthesized_expression "((uVar3 <= uVar19) && (uVar19 < 0x40000000))" ( (binary_expression "(uVar3 <= uVar19) && (uVar19 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar19)" ( (binary_expression "uVar3 <= uVar19" identifier <= identifier) )) && (parenthesized_expression "(uVar19 < 0x40000000)" ( (binary_expression "uVar19 < 0x40000000" identifier < number_literal) ))) )) (compound_statement "{\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" { (if_statement "if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" if (parenthesized_expression "(uVar19 < 2000)" ( (binary_expression "uVar19 < 2000" identifier < number_literal) )) (compound_statement "{\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar19 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar19 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar19 * 4 + 7 & 0xfffffff8" (binary_expression "uVar19 * 4 + 7" (binary_expression "uVar19 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar21 = pbVar29 + iVar8 + -0x1d0;" (assignment_expression "puVar21 = pbVar29 + iVar8 + -0x1d0" identifier = (binary_expression "pbVar29 + iVar8 + -0x1d0" (binary_expression "pbVar29 + iVar8" identifier + identifier) + number_literal)) ;) (expression_statement "piVar16 = (int *)(puVar21 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(puVar21 + uVar3 * 4)" identifier = (cast_expression "(int *)(puVar21 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + uVar3 * 4)" ( (binary_expression "puVar21 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(puVar21,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" ( (pointer_expression "**(code **)(iVar28 + -0x7bec)" * (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) )) (argument_list "(piVar16,piVar11,iVar25,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + iVar8 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + iVar8 + -0x1d8)" ( (binary_expression "pbVar29 + iVar8 + -0x1d8" (binary_expression "pbVar29 + iVar8" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( identifier , identifier , (binary_expression "piVar16 + iVar10" identifier + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" else (compound_statement "{\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" { (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c9c))();" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c9c))()" identifier = (call_expression "(**(code **)(iVar28 + -0x7c9c))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7c9c))" ( (pointer_expression "**(code **)(iVar28 + -0x7c9c)" * (pointer_expression "*(code **)(iVar28 + -0x7c9c)" * (cast_expression "(code **)(iVar28 + -0x7c9c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7c9c)" ( (binary_expression "iVar28 + -0x7c9c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_00038914;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00038914;" goto statement_identifier ;)) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pbVar29 + -0x1c4) = iVar8;" (assignment_expression "*(int *)(pbVar29 + -0x1c4) = iVar8" (pointer_expression "*(int *)(pbVar29 + -0x1c4)" * (cast_expression "(int *)(pbVar29 + -0x1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = (int *)(iVar8 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(iVar8 + uVar3 * 4)" identifier = (cast_expression "(int *)(iVar8 + uVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + uVar3 * 4)" ( (binary_expression "iVar8 + uVar3 * 4" identifier + (binary_expression "uVar3 * 4" identifier * number_literal)) )))) ;) (expression_statement "(*pcVar32)(iVar8,puVar20,uVar3,puVar17);" (call_expression "(*pcVar32)(iVar8,puVar20,uVar3,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar8,puVar20,uVar3,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" identifier = (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" { (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" identifier = (pointer_expression "*(code **)(iVar28 + -0x7bec)" * (cast_expression "(code **)(iVar28 + -0x7bec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7bec)" ( (binary_expression "iVar28 + -0x7bec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar32)(piVar16,piVar11,iVar25,puVar17);" (call_expression "(*pcVar32)(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(piVar16,piVar11,iVar25,puVar17)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d8)" ( (binary_expression "pbVar29 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) , identifier , (binary_expression "piVar16 + iVar10" identifier + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;" (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))" ( (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" * (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" * (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" ( (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c20" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4))" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1c4)" ( (binary_expression "pbVar29 + -0x1c4" identifier + number_literal) )))) ))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) }))) (expression_statement "uVar15 = 0x147;" (assignment_expression "uVar15 = 0x147" identifier = number_literal) ;) (labeled_statement "LAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" statement_identifier : (expression_statement "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" (assignment_expression "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" identifier = (call_expression "(**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" (parenthesized_expression "(**(code **)(iVar28 + -0x7db0))" ( (pointer_expression "**(code **)(iVar28 + -0x7db0)" * (pointer_expression "*(code **)(iVar28 + -0x7db0)" * (cast_expression "(code **)(iVar28 + -0x7db0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7db0)" ( (binary_expression "iVar28 + -0x7db0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" ( (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f48" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f3c" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x5258" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" * (cast_expression "(int *)(iVar28 + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -0x7fc8)" ( (binary_expression "iVar28 + -0x7fc8" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar3;" return identifier ;) })) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" statement_identifier : (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar28 + -0x7cf8))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7cf8))" ( (pointer_expression "**(code **)(iVar28 + -0x7cf8)" * (pointer_expression "*(code **)(iVar28 + -0x7cf8)" * (cast_expression "(code **)(iVar28 + -0x7cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cf8)" ( (binary_expression "iVar28 + -0x7cf8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (goto_statement "goto LAB_00038784;" goto statement_identifier ;) })) })) })) (expression_statement "piVar16 = *(int **)(pbVar29 + -0x1c0);" (assignment_expression "piVar16 = *(int **)(pbVar29 + -0x1c0)" identifier = (pointer_expression "*(int **)(pbVar29 + -0x1c0)" * (cast_expression "(int **)(pbVar29 + -0x1c0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1c0)" ( (binary_expression "pbVar29 + -0x1c0" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16)" identifier = (call_expression "(**(code **)(iVar28 + -0x7cbc))(piVar16)" (parenthesized_expression "(**(code **)(iVar28 + -0x7cbc))" ( (pointer_expression "**(code **)(iVar28 + -0x7cbc)" * (pointer_expression "*(code **)(iVar28 + -0x7cbc)" * (cast_expression "(code **)(iVar28 + -0x7cbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + -0x7cbc)" ( (binary_expression "iVar28 + -0x7cbc" identifier + number_literal) ))))) )) (argument_list "(piVar16)" ( identifier )))) ;) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" * (cast_expression "(byte **)(pbVar29 + -0x1d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1d8)" ( (binary_expression "pbVar29 + -0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(pbVar29 + -0x1bc)" * (cast_expression "(undefined4 *)(pbVar29 + -0x1bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1bc)" ( (binary_expression "pbVar29 + -0x1bc" identifier + number_literal) )))) , identifier , (binary_expression "(int)piVar16 + iVar10" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar22 << 0x1d)" ( (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" identifier = (pointer_expression "*(int *)(pbVar29 + -0x1d0)" * (cast_expression "(int *)(pbVar29 + -0x1d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar29 + -0x1d0)" ( (binary_expression "pbVar29 + -0x1d0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);" statement_identifier : (expression_statement "piVar11 = *(int **)(pbVar29 + -0x1ac);" (assignment_expression "piVar11 = *(int **)(pbVar29 + -0x1ac)" identifier = (pointer_expression "*(int **)(pbVar29 + -0x1ac)" * (cast_expression "(int **)(pbVar29 + -0x1ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar29 + -0x1ac)" ( (binary_expression "pbVar29 + -0x1ac" identifier + number_literal) ))))) ;)) (if_statement "if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }" if (parenthesized_expression "(piVar11 == (int *)*piVar6)" ( (binary_expression "piVar11 == (int *)*piVar6" identifier == (cast_expression "(int *)*piVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar6" * identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "(**(code **)(iVar10 + -0x7c4c))();" (call_expression "(**(code **)(iVar10 + -0x7c4c))()" (parenthesized_expression "(**(code **)(iVar10 + -0x7c4c))" ( (pointer_expression "**(code **)(iVar10 + -0x7c4c)" * (pointer_expression "*(code **)(iVar10 + -0x7c4c)" * (cast_expression "(code **)(iVar10 + -0x7c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + -0x7c4c)" ( (binary_expression "iVar10 + -0x7c4c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" if (parenthesized_expression "((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3]))" ( (binary_expression "(piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])" (parenthesized_expression "(piVar11[2] == piVar16[2])" ( (binary_expression "piVar11[2] == piVar16[2]" (subscript_expression "piVar11[2]" identifier [ number_literal ]) == (subscript_expression "piVar16[2]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar11[3] == piVar16[3])" ( (binary_expression "piVar11[3] == piVar16[3]" (subscript_expression "piVar11[3]" identifier [ number_literal ]) == (subscript_expression "piVar16[3]" identifier [ number_literal ])) ))) )) (compound_statement "{\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" { (return_statement "return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);" return (call_expression "(uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" ( (binary_expression "*piVar11 == *piVar16 && piVar11[1] == piVar16[1]" (binary_expression "*piVar11 == *piVar16" (pointer_expression "*piVar11" * identifier) == (pointer_expression "*piVar16" * identifier)) && (binary_expression "piVar11[1] == piVar16[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) == (subscript_expression "piVar16[1]" identifier [ number_literal ]))) ))) ;) })) (return_statement "return 0;" return number_literal ;) })))
(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 IDENT) ))) (compound_statement { (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 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 = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 LIT < (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) - LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;)) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 { (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 LIT < (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 ;) })) (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 ;) })) (break_statement break ;) })) (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 = (binary_expression IDENT + LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 (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 (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 (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 IDENT * 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 (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 = (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 *)) ) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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 != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == 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 = (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 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 != 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 + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , 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 { (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 = (call_expression IDENT (argument_list ( IDENT , 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) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression 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) )) (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) )))) = (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 = (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 (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) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) ;)) (return_statement return IDENT ;) })) (labeled_statement 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 (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) && (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ]))) ))) ;) })) (return_statement return LIT ;) })))
(function_definition "uint FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" (type_identifier "uint") (function_declarator "FUN_000371d4(int param_1,byte *param_2,byte *param_3,uint param_4)" (identifier "FUN_000371d4") (parameter_list "(int param_1,byte *param_2,byte *param_3,uint 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 "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  byte *pbVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  byte bVar12;\n  int *piVar11;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  int *piVar16;\n  undefined1 *puVar17;\n  undefined *puVar18;\n  uint uVar19;\n  undefined *unaff_s4;\n  uint unaff_s5;\n  undefined1 *puVar20;\n  undefined1 *puVar21;\n  byte *unaff_s6;\n  byte *pbVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  byte *pbVar29;\n  undefined1 *puVar30;\n  byte *pbVar31;\n  code *pcVar32;\n  code *pcVar33;\n  byte abStack_70 [24];\n  byte *local_48;\n  int *local_34;\n  int local_30;\n  byte *local_2c;\n  \n  puVar18 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = abStack_70;\n  pbVar31 = abStack_70;\n  pbVar24 = param_2 + 1;\n  local_30 = 0;\n  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;\n  pbVar13 = param_2;\n  pbVar14 = param_3;\n  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);\n  puVar26 = PTR_DAT_00056260;\n  iVar10 = (int)(char)param_2[1];\n  if (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }\nLAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }\n  pcVar32 = FUN_000378d8;\n  pbVar4 = local_2c;\n  puVar26 = PTR___stack_chk_fail_00056494;\n  (*(code *)PTR___stack_chk_fail_00056494)();\n  puVar2 = puVar26 + 0x26808;\n  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);\n  *(byte **)(pbVar29 + -0x10) = unaff_s6;\n  *(int *)(pbVar29 + -0x1c) = param_1;\n  *(undefined **)(pbVar29 + -0x168) = puVar2;\n  *(code **)(pbVar29 + -4) = pcVar32;\n  *(byte **)(pbVar29 + -8) = abStack_70;\n  *(byte **)(pbVar29 + -0xc) = pbVar24;\n  *(uint *)(pbVar29 + -0x14) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x18) = unaff_s4;\n  *(byte **)(pbVar29 + -0x20) = param_3;\n  *(undefined **)(pbVar29 + -0x24) = puVar18;\n  *(byte **)(pbVar29 + -0x28) = param_2;\n  *(undefined4 **)(pbVar29 + -0x148) = puVar5;\n  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;\n  uVar3 = (uint)*pbVar4;\n  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;\n  pbVar22 = pbVar14;\n  pbVar23 = pbVar13;\n  if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }\n  uVar7 = 0;\n  if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }\nLAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);\n  if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }\n  pcVar32 = *(code **)(puVar2 + -0x7c4c);\n  pcVar33 = rpl_fnmatch;\n  (*pcVar32)();\n  pcVar27 = *(code **)(pcVar32 + 0x1dd98);\n  *(undefined **)(pbVar29 + -0x1a4) = puVar18;\n  piVar6 = *(int **)(pcVar32 + 0x1dddc);\n  *(byte **)(pbVar29 + -0x188) = pbVar31;\n  *(uint *)(pbVar29 + -0x1a0) = uVar3;\n  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;\n  *(code **)(pbVar29 + -0x184) = pcVar33;\n  *(byte **)(pbVar29 + -0x18c) = pbVar24;\n  *(byte **)(pbVar29 + -400) = pbVar23;\n  *(uint *)(pbVar29 + -0x194) = unaff_s5;\n  *(undefined **)(pbVar29 + -0x198) = unaff_s4;\n  *(byte **)(pbVar29 + -0x19c) = pbVar14;\n  *(byte **)(pbVar29 + -0x1a8) = param_2;\n  *(int *)(pbVar29 + -0x1bc) = iVar10;\n  *(byte **)(pbVar29 + -0x1c0) = pbVar13;\n  *(int *)(pbVar29 + -0x1ac) = *piVar6;\n  iVar10 = (*pcVar27)();\n  iVar28 = *(int *)(pbVar29 + -0x1d0);\n  if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }\n  piVar16 = *(int **)(pbVar29 + -0x1c0);\n  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);\n  *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n  iVar10 = *(int *)(pbVar29 + -0x1d0);\nLAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);\n  if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }\n  (**(code **)(iVar10 + -0x7c4c))();\n  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }\n  return 0;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "undefined *unaff_s4;" (type_identifier "undefined") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint unaff_s5;" (type_identifier "uint") (identifier "unaff_s5") (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "undefined1 *puVar30;" (type_identifier "undefined1") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "byte *pbVar31;" (type_identifier "byte") (pointer_declarator "*pbVar31" (* "*") (identifier "pbVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "code *pcVar33;" (type_identifier "code") (pointer_declarator "*pcVar33" (* "*") (identifier "pcVar33")) (; ";")) (declaration "byte abStack_70 [24];" (type_identifier "byte") (array_declarator "abStack_70 [24]" (identifier "abStack_70") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "byte *local_48;" (type_identifier "byte") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (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 "puVar18 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar18 = PTR___stack_chk_guard_000564b4" (identifier "puVar18") (= "=") (identifier "PTR___stack_chk_guard_000564b4")) (; ";")) (expression_statement "pbVar29 = abStack_70;" (assignment_expression "pbVar29 = abStack_70" (identifier "pbVar29") (= "=") (identifier "abStack_70")) (; ";")) (expression_statement "pbVar31 = abStack_70;" (assignment_expression "pbVar31 = abStack_70" (identifier "pbVar31") (= "=") (identifier "abStack_70")) (; ";")) (expression_statement "pbVar24 = param_2 + 1;" (assignment_expression "pbVar24 = param_2 + 1" (identifier "pbVar24") (= "=") (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_000564b4;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000564b4" (identifier "local_2c") (= "=") (pointer_expression "*(byte **)PTR___stack_chk_guard_000564b4" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_000564b4" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000564b4")))) (; ";")) (expression_statement "pbVar13 = param_2;" (assignment_expression "pbVar13 = param_2" (identifier "pbVar13") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar14 = param_3;" (assignment_expression "pbVar14 = param_3" (identifier "pbVar14") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2)" (identifier "local_48") (= "=") (cast_expression "(byte *)(*(code *)PTR_strlen_00056424)(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_00056424)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_00056424)" (( "(") (pointer_expression "*(code *)PTR_strlen_00056424" (* "*") (cast_expression "(code *)PTR_strlen_00056424" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00056424"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar26 = PTR_DAT_00056260;" (assignment_expression "puVar26 = PTR_DAT_00056260" (identifier "puVar26") (= "=") (identifier "PTR_DAT_00056260")) (; ";")) (expression_statement "iVar10 = (int)(char)param_2[1];" (assignment_expression "iVar10 = (int)(char)param_2[1]" (identifier "iVar10") (= "=") (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 (iVar10 != 0) {\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = 0;\n    puVar2 = PTR_wcrtomb_00056118 + 0x724;\n    local_34 = &local_30;\n    pbVar4 = abStack_70;\n    unaff_s6 = pbVar24;\nLAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = PTR_wcrtomb_00056118 + 0x724;" (assignment_expression "puVar2 = PTR_wcrtomb_00056118 + 0x724" (identifier "puVar2") (= "=") (binary_expression "PTR_wcrtomb_00056118 + 0x724" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x724"))) (; ";")) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" (identifier "local_34") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "pbVar4 = abStack_70;" (assignment_expression "pbVar4 = abStack_70" (identifier "pbVar4") (= "=") (identifier "abStack_70")) (; ";")) (expression_statement "unaff_s6 = pbVar24;" (assignment_expression "unaff_s6 = pbVar24" (identifier "unaff_s6") (= "=") (identifier "pbVar24")) (; ";")) (labeled_statement "LAB_0003728c:\n    do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" (statement_identifier "LAB_0003728c") (: ":") (do_statement "do {\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    } while (iVar10 != 0);" (do "do") (compound_statement "{\n      pbVar29 = pbVar4;\n      unaff_s4 = puVar26;\n      if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }\n      pbVar4 = pbVar29;\n    }" ({ "{") (expression_statement "pbVar29 = pbVar4;" (assignment_expression "pbVar29 = pbVar4" (identifier "pbVar29") (= "=") (identifier "pbVar4")) (; ";")) (expression_statement "unaff_s4 = puVar26;" (assignment_expression "unaff_s4 = puVar26" (identifier "unaff_s4") (= "=") (identifier "puVar26")) (; ";")) (if_statement "if (iVar10 == 0x5b) {\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }\n      else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0x5b)" (( "(") (binary_expression "iVar10 == 0x5b" (identifier "iVar10") (== "==") (number_literal "0x5b")) () ")")) (compound_statement "{\n        pbVar14 = &DAT_00000021;\n        if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }\n        if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }\n        pbVar13 = (byte *)0x5d;\n        while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }\n        iVar10 = (int)(char)pbVar4[1];\n      }" ({ "{") (expression_statement "pbVar14 = &DAT_00000021;" (assignment_expression "pbVar14 = &DAT_00000021" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_00000021" (& "&") (identifier "DAT_00000021"))) (; ";")) (if_statement "if (*(int *)(puVar26 + -0x56a0) == 0) {\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }\n        else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) == 0)" (( "(") (binary_expression "*(int *)(puVar26 + -0x56a0) == 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" (* "*") (cast_expression "(int *)(puVar26 + -0x56a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x56a0)" (( "(") (binary_expression "puVar26 + -0x56a0" (identifier "puVar26") (+ "+") (number_literal "-0x56a0")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);\n          bVar12 = pbVar24[1];\n          if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }\n          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;\n          if (bVar12 != 0x21) goto LAB_00037408;\n          bVar12 = pbVar24[2];\nLAB_00037494:\n          pbVar4 = pbVar24 + 2;\n        }" ({ "{") (expression_statement "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);" (assignment_expression "iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2)" (identifier "iVar10") (= "=") (call_expression "(*(code *)PTR_getenv_0005644c)(puVar2)" (parenthesized_expression "(*(code *)PTR_getenv_0005644c)" (( "(") (pointer_expression "*(code *)PTR_getenv_0005644c" (* "*") (cast_expression "(code *)PTR_getenv_0005644c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_0005644c"))) () ")")) (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar10 != 0) {\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(puVar26 + -0x56a0) = 1;\n            if (bVar12 != 0x21) goto LAB_00037418;\n            goto LAB_00037490;\n          }" ({ "{") (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 1;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 1" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" (* "*") (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x56a0)" (( "(") (binary_expression "puVar26 + -0x56a0" (identifier "puVar26") (+ "+") (number_literal "-0x56a0")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar12 != 0x21) goto LAB_00037418;" (if "if") (parenthesized_expression "(bVar12 != 0x21)" (( "(") (binary_expression "bVar12 != 0x21" (identifier "bVar12") (!= "!=") (number_literal "0x21")) () ")")) (goto_statement "goto LAB_00037418;" (goto "goto") (statement_identifier "LAB_00037418") (; ";"))) (goto_statement "goto LAB_00037490;" (goto "goto") (statement_identifier "LAB_00037490") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar26 + -0x56a0)" (* "*") (cast_expression "(undefined4 *)(puVar26 + -0x56a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x56a0)" (( "(") (binary_expression "puVar26 + -0x56a0" (identifier "puVar26") (+ "+") (number_literal "-0x56a0")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (bVar12 != 0x21) goto LAB_00037408;" (if "if") (parenthesized_expression "(bVar12 != 0x21)" (( "(") (binary_expression "bVar12 != 0x21" (identifier "bVar12") (!= "!=") (number_literal "0x21")) () ")")) (goto_statement "goto LAB_00037408;" (goto "goto") (statement_identifier "LAB_00037408") (; ";"))) (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" (identifier "bVar12") (= "=") (subscript_expression "pbVar24[2]" (identifier "pbVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "LAB_00037494:\n          pbVar4 = pbVar24 + 2;" (statement_identifier "LAB_00037494") (: ":") (expression_statement "pbVar4 = pbVar24 + 2;" (assignment_expression "pbVar4 = pbVar24 + 2" (identifier "pbVar4") (= "=") (binary_expression "pbVar24 + 2" (identifier "pbVar24") (+ "+") (number_literal "2"))) (; ";"))) (} "}")) (else_clause "else {\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" (else "else") (compound_statement "{\n          bVar12 = pbVar24[1];\n          if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }\n          if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }\nLAB_00037418:\n          pbVar4 = pbVar24 + 1;\n        }" ({ "{") (expression_statement "bVar12 = pbVar24[1];" (assignment_expression "bVar12 = pbVar24[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar12 == 0x21) {\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" (if "if") (parenthesized_expression "(bVar12 == 0x21)" (( "(") (binary_expression "bVar12 == 0x21" (identifier "bVar12") (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\nLAB_00037490:\n            bVar12 = pbVar24[2];\n            goto LAB_00037494;\n          }" ({ "{") (labeled_statement "LAB_00037490:\n            bVar12 = pbVar24[2];" (statement_identifier "LAB_00037490") (: ":") (expression_statement "bVar12 = pbVar24[2];" (assignment_expression "bVar12 = pbVar24[2]" (identifier "bVar12") (= "=") (subscript_expression "pbVar24[2]" (identifier "pbVar24") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (goto_statement "goto LAB_00037494;" (goto "goto") (statement_identifier "LAB_00037494") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar26 + -0x56a0) < 0) {\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" (if "if") (parenthesized_expression "(*(int *)(puVar26 + -0x56a0) < 0)" (( "(") (binary_expression "*(int *)(puVar26 + -0x56a0) < 0" (pointer_expression "*(int *)(puVar26 + -0x56a0)" (* "*") (cast_expression "(int *)(puVar26 + -0x56a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + -0x56a0)" (( "(") (binary_expression "puVar26 + -0x56a0" (identifier "puVar26") (+ "+") (number_literal "-0x56a0")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;\n          }" ({ "{") (labeled_statement "LAB_00037408:\n            if (bVar12 == 0x5e) goto LAB_00037490;" (statement_identifier "LAB_00037408") (: ":") (if_statement "if (bVar12 == 0x5e) goto LAB_00037490;" (if "if") (parenthesized_expression "(bVar12 == 0x5e)" (( "(") (binary_expression "bVar12 == 0x5e" (identifier "bVar12") (== "==") (number_literal "0x5e")) () ")")) (goto_statement "goto LAB_00037490;" (goto "goto") (statement_identifier "LAB_00037490") (; ";")))) (} "}"))) (labeled_statement "LAB_00037418:\n          pbVar4 = pbVar24 + 1;" (statement_identifier "LAB_00037418") (: ":") (expression_statement "pbVar4 = pbVar24 + 1;" (assignment_expression "pbVar4 = pbVar24 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (if_statement "if (bVar12 == 0x5d) {\n          pbVar4 = pbVar4 + 1;\n        }" (if "if") (parenthesized_expression "(bVar12 == 0x5d)" (( "(") (binary_expression "bVar12 == 0x5d" (identifier "bVar12") (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          pbVar4 = pbVar4 + 1;\n        }" ({ "{") (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar13 = (byte *)0x5d;" (assignment_expression "pbVar13 = (byte *)0x5d" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x5d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5d"))) (; ";")) (while_statement "while( true ) {\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          bVar12 = *pbVar4;\n          pbVar24 = pbVar4 + 1;\n          if (bVar12 == 0x5d) break;\n          pbVar4 = pbVar24;\n          if (bVar12 == 0) goto LAB_000372e4;\n        }" ({ "{") (expression_statement "bVar12 = *pbVar4;" (assignment_expression "bVar12 = *pbVar4" (identifier "bVar12") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "pbVar24 = pbVar4 + 1;" (assignment_expression "pbVar24 = pbVar4 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar12 == 0x5d) break;" (if "if") (parenthesized_expression "(bVar12 == 0x5d)" (( "(") (binary_expression "bVar12 == 0x5d" (identifier "bVar12") (== "==") (number_literal "0x5d")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar4 = pbVar24;" (assignment_expression "pbVar4 = pbVar24" (identifier "pbVar4") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (bVar12 == 0) goto LAB_000372e4;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000372e4;" (goto "goto") (statement_identifier "LAB_000372e4") (; ";"))) (} "}"))) (expression_statement "iVar10 = (int)(char)pbVar4[1];" (assignment_expression "iVar10 = (int)(char)pbVar4[1]" (identifier "iVar10") (= "=") (cast_expression "(int)(char)pbVar4[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar4[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" (else "else") (compound_statement "{\n        pbVar13 = &DAT_c0000601;\n        uVar3 = iVar10 - 0x21U & 0xff;\n        pbVar14 = (byte *)(uint)(uVar3 < 0x20);\n        if (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }\njoined_r0x00037454:\n        pbVar24 = pbVar24 + 1;\n      }" ({ "{") (expression_statement "pbVar13 = &DAT_c0000601;" (assignment_expression "pbVar13 = &DAT_c0000601" (identifier "pbVar13") (= "=") (pointer_expression "&DAT_c0000601" (& "&") (identifier "DAT_c0000601"))) (; ";")) (expression_statement "uVar3 = iVar10 - 0x21U & 0xff;" (assignment_expression "uVar3 = iVar10 - 0x21U & 0xff" (identifier "uVar3") (= "=") (binary_expression "iVar10 - 0x21U & 0xff" (binary_expression "iVar10 - 0x21U" (identifier "iVar10") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "pbVar14 = (byte *)(uint)(uVar3 < 0x20);" (assignment_expression "pbVar14 = (byte *)(uint)(uVar3 < 0x20)" (identifier "pbVar14") (= "=") (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 (pbVar14 == (byte *)0x0) {\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }\n        else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" (if "if") (parenthesized_expression "(pbVar14 == (byte *)0x0)" (( "(") (binary_expression "pbVar14 == (byte *)0x0" (identifier "pbVar14") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }\nLAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];\n        }" ({ "{") (if_statement "if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" (if "if") (parenthesized_expression "((iVar10 == 0x7c) && (unaff_s5 == 0))" (( "(") (binary_expression "(iVar10 == 0x7c) && (unaff_s5 == 0)" (parenthesized_expression "(iVar10 == 0x7c)" (( "(") (binary_expression "iVar10 == 0x7c" (identifier "iVar10") (== "==") (number_literal "0x7c")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s5 == 0)" (( "(") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            pbVar4 = local_48;\n            if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;\n            pbVar14 = pbVar24 + -(int)unaff_s6;\n            pbVar22 = pbVar24 + 1;\n            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            puVar30 = pbVar29 + iVar28;\n            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);\n            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);\n            iVar10 = (int)(char)pbVar24[1];\n            *puVar17 = 0;\n            *piVar6 = 0;\n            *local_34 = (int)piVar6;\n            pbVar13 = unaff_s6;\n            unaff_s6 = pbVar22;\n            pbVar24 = pbVar22;\n            pbVar29 = pbVar29 + iVar28;\n            local_34 = piVar6;\n            pbVar4 = puVar30;\n            if (iVar10 == 0) break;\n            goto LAB_0003728c;\n          }" ({ "{") (expression_statement "pbVar4 = local_48;" (assignment_expression "pbVar4 = local_48" (identifier "pbVar4") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (1 < param_1 - 0x3fU) {\n              pbVar4 = pbVar24 + (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              pbVar4 = pbVar24 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "pbVar4 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "pbVar4 = pbVar24 + (1 - (int)unaff_s6)" (identifier "pbVar4") (= "=") (binary_expression "pbVar24 + (1 - (int)unaff_s6)" (identifier "pbVar24") (+ "+") (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)(pbVar4 + 7) & 0xfffffffc) - 4) break;" (if "if") (parenthesized_expression "(0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4)" (( "(") (binary_expression "0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4" (number_literal "0x1f3b") (< "<") (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar4 + 7)" (( "(") (binary_expression "pbVar4 + 7" (identifier "pbVar4") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar14 = pbVar24 + -(int)unaff_s6;" (assignment_expression "pbVar14 = pbVar24 + -(int)unaff_s6" (identifier "pbVar14") (= "=") (binary_expression "pbVar24 + -(int)unaff_s6" (identifier "pbVar24") (+ "+") (unary_expression "-(int)unaff_s6" (- "-") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))))) (; ";")) (expression_statement "pbVar22 = pbVar24 + 1;" (assignment_expression "pbVar22 = pbVar24 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar28") (= "=") (unary_expression "-(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar4 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar4 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar4 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar4 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar4 + 7)" (( "(") (binary_expression "pbVar4 + 7" (identifier "pbVar4") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar30 = pbVar29 + iVar28;" (assignment_expression "puVar30 = pbVar29 + iVar28" (identifier "puVar30") (= "=") (binary_expression "pbVar29 + iVar28" (identifier "pbVar29") (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "piVar6 = (int *)(pbVar29 + iVar28 + 0x18);" (assignment_expression "piVar6 = (int *)(pbVar29 + iVar28 + 0x18)" (identifier "piVar6") (= "=") (cast_expression "(int *)(pbVar29 + iVar28 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + iVar28 + 0x18)" (( "(") (binary_expression "pbVar29 + iVar28 + 0x18" (binary_expression "pbVar29 + iVar28" (identifier "pbVar29") (+ "+") (identifier "iVar28")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);" (assignment_expression "puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000564a4" (* "*") (cast_expression "(code *)PTR_mempcpy_000564a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000564a4"))) () ")")) (argument_list "(pbVar29 + iVar28 + 0x1c)" (( "(") (binary_expression "pbVar29 + iVar28 + 0x1c" (binary_expression "pbVar29 + iVar28" (identifier "pbVar29") (+ "+") (identifier "iVar28")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" (identifier "iVar10") (= "=") (cast_expression "(int)(char)pbVar24[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar24[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)piVar6;" (assignment_expression "*local_34 = (int)piVar6" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pbVar13 = unaff_s6;" (assignment_expression "pbVar13 = unaff_s6" (identifier "pbVar13") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "unaff_s6 = pbVar22;" (assignment_expression "unaff_s6 = pbVar22" (identifier "unaff_s6") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar24 = pbVar22;" (assignment_expression "pbVar24 = pbVar22" (identifier "pbVar24") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar29 = pbVar29 + iVar28;" (assignment_expression "pbVar29 = pbVar29 + iVar28" (identifier "pbVar29") (= "=") (binary_expression "pbVar29 + iVar28" (identifier "pbVar29") (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "local_34 = piVar6;" (assignment_expression "local_34 = piVar6" (identifier "local_34") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "pbVar4 = puVar30;" (assignment_expression "pbVar4 = puVar30" (identifier "pbVar4") (= "=") (identifier "puVar30")) (; ";")) (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0003728c;" (goto "goto") (statement_identifier "LAB_0003728c") (; ";")) (} "}"))) (labeled_statement "LAB_00037450:\n          iVar10 = (int)(char)pbVar24[1];" (statement_identifier "LAB_00037450") (: ":") (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" (identifier "iVar10") (= "=") (cast_expression "(int)(char)pbVar24[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar24[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))))) (; ";"))) (} "}")) (else_clause "else {\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" (else "else") (compound_statement "{\n          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }\n          if (iVar10 != 0x29) goto LAB_00037450;\n          bVar1 = unaff_s5 == 0;\n          unaff_s5 = unaff_s5 - 1;\n          if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }\n          iVar10 = (int)(char)pbVar24[1];\n        }" ({ "{") (while_statement "while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {\n            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 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            iVar10 = (int)(char)pbVar24[1];\n            if (iVar10 != 0x28) goto joined_r0x00037454;\n            pbVar14 = (byte *)0x1;\n            unaff_s5 = unaff_s5 + 1;\n            pbVar24 = pbVar24 + 1;\n            uVar3 = 7;\n          }" ({ "{") (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" (identifier "iVar10") (= "=") (cast_expression "(int)(char)pbVar24[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar24[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (if_statement "if (iVar10 != 0x28) goto joined_r0x00037454;" (if "if") (parenthesized_expression "(iVar10 != 0x28)" (( "(") (binary_expression "iVar10 != 0x28" (identifier "iVar10") (!= "!=") (number_literal "0x28")) () ")")) (goto_statement "goto joined_r0x00037454;" (goto "goto") (statement_identifier "joined_r0x00037454") (; ";"))) (expression_statement "pbVar14 = (byte *)0x1;" (assignment_expression "pbVar14 = (byte *)0x1" (identifier "pbVar14") (= "=") (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 "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = 7;" (assignment_expression "uVar3 = 7" (identifier "uVar3") (= "=") (number_literal "7")) (; ";")) (} "}"))) (if_statement "if (iVar10 != 0x29) goto LAB_00037450;" (if "if") (parenthesized_expression "(iVar10 != 0x29)" (( "(") (binary_expression "iVar10 != 0x29" (identifier "iVar10") (!= "!=") (number_literal "0x29")) () ")")) (goto_statement "goto LAB_00037450;" (goto "goto") (statement_identifier "LAB_00037450") (; ";"))) (expression_statement "bVar1 = unaff_s5 == 0;" (assignment_expression "bVar1 = unaff_s5 == 0" (identifier "bVar1") (= "=") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0"))) (; ";")) (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"))) (; ";")) (if_statement "if (bVar1) {\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n            unaff_s5 = (uint)(param_1 - 0x3fU < 2);\n            if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }\n            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }\n            break;\n          }" ({ "{") (expression_statement "unaff_s5 = (uint)(param_1 - 0x3fU < 2);" (assignment_expression "unaff_s5 = (uint)(param_1 - 0x3fU < 2)" (identifier "unaff_s5") (= "=") (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")) () ")")))) (; ";")) (if_statement "if (unaff_s5 == 0) {\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" (if "if") (parenthesized_expression "(unaff_s5 == 0)" (( "(") (binary_expression "unaff_s5 == 0" (identifier "unaff_s5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_48 = pbVar24 + (1 - (int)unaff_s6);\n            }" ({ "{") (expression_statement "local_48 = pbVar24 + (1 - (int)unaff_s6);" (assignment_expression "local_48 = pbVar24 + (1 - (int)unaff_s6)" (identifier "local_48") (= "=") (binary_expression "pbVar24 + (1 - (int)unaff_s6)" (identifier "pbVar24") (+ "+") (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_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" (if "if") (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c)" (( "(") (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_48 + 7)" (( "(") (binary_expression "local_48 + 7" (identifier "local_48") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4")) (< "<") (number_literal "0x1f3c")) () ")")) (compound_statement "{\n              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n              puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);\n              *puVar17 = 0;\n              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;\n              *local_34 = (int)(pbVar29 + iVar10 + 0x18);\n              if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n              if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }\n                    \n                    \n              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();\n              return uVar3;\n            }" ({ "{") (expression_statement "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar10") (= "=") (unary_expression "-(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(local_48 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(local_48 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_48 + 7) & 0xfffffffc" (call_expression "(uint)(local_48 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_48 + 7)" (( "(") (binary_expression "local_48 + 7" (identifier "local_48") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);" (assignment_expression "puVar17 = (undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)\n                        (*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000564a4)\n                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (parenthesized_expression "(*(code *)PTR_mempcpy_000564a4)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000564a4" (* "*") (cast_expression "(code *)PTR_mempcpy_000564a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000564a4"))) () ")")) (argument_list "(pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6)" (( "(") (binary_expression "pbVar29 + iVar10 + 0x1c" (binary_expression "pbVar29 + iVar10" (identifier "pbVar29") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "unaff_s6") (, ",") (binary_expression "(int)pbVar24 - (int)unaff_s6" (cast_expression "(int)pbVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar24")) (- "-") (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 *)(pbVar29 + iVar10 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + iVar10 + 0x18)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + iVar10 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" (( "(") (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" (identifier "pbVar29") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = (int)(pbVar29 + iVar10 + 0x18);" (assignment_expression "*local_34 = (int)(pbVar29 + iVar10 + 0x18)" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (cast_expression "(int)(pbVar29 + iVar10 + 0x18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar29 + iVar10 + 0x18)" (( "(") (binary_expression "pbVar29 + iVar10 + 0x18" (binary_expression "pbVar29 + iVar10" (identifier "pbVar29") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (local_30 == 0) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\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_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" ({ "{") (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00056330" (* "*") (cast_expression "(code *)PTR___assert_fail_00056330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00056330"))) () ")")) (argument_list "(PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (( "(") (binary_expression "PTR_wcrtomb_00056118 + 0x4ef0" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4ef0")) (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4ee0")) (, ",") (number_literal "0x454") (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x5240" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x5240")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (if_statement "if (pbVar24[-1] != 0x29) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" (if "if") (parenthesized_expression "(pbVar24[-1] != 0x29)" (( "(") (binary_expression "pbVar24[-1] != 0x29" (subscript_expression "pbVar24[-1]" (identifier "pbVar24") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "0x29")) () ")")) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" ({ "{") (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00056330" (* "*") (cast_expression "(code *)PTR___assert_fail_00056330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00056330"))) () ")")) (argument_list "(PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (( "(") (binary_expression "PTR_wcrtomb_00056118 + 0x4f00" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4f00")) (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4ee0")) (, ",") (number_literal "0x455") (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x5240" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x5240")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (if_statement "if (0x1f < param_1 - 0x21U) {\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" (if "if") (parenthesized_expression "(0x1f < param_1 - 0x21U)" (( "(") (binary_expression "0x1f < param_1 - 0x21U" (number_literal "0x1f") (< "<") (binary_expression "param_1 - 0x21U" (identifier "param_1") (- "-") (number_literal "0x21U"))) () ")")) (compound_statement "{\n                uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);\n                return uVar3;\n              }" ({ "{") (expression_statement "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240);" (assignment_expression "uVar3 = (*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR___assert_fail_00056330)\n                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (parenthesized_expression "(*(code *)PTR___assert_fail_00056330)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00056330" (* "*") (cast_expression "(code *)PTR___assert_fail_00056330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00056330"))) () ")")) (argument_list "(PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad\n                                   ,PTR_wcrtomb_00056118 + 0x5240)" (( "(") (binary_expression "PTR_wcrtomb_00056118 + 0x4f14" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4f14")) (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x4ee0" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x4ee0")) (, ",") (number_literal "0x4ad") (, ",") (binary_expression "PTR_wcrtomb_00056118 + 0x5240" (identifier "PTR_wcrtomb_00056118") (+ "+") (number_literal "0x5240")) () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();" (assignment_expression "uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" (identifier "uVar3") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (* "*") (cast_expression "(int *)(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0)" (( "(") (binary_expression "PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4 + 0x50d0" (binary_expression "PTR_wcrtomb_00056118 +\n                                                  (param_1 - 0x21U) * 4" (identifier "PTR_wcrtomb_00056118") (+ "+") (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 "0x50d0")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar10 = (int)(char)pbVar24[1];" (assignment_expression "iVar10 = (int)(char)pbVar24[1]" (identifier "iVar10") (= "=") (cast_expression "(int)(char)pbVar24[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar24[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar24[1]" (identifier "pbVar24") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}")))) (labeled_statement "joined_r0x00037454:\n        pbVar24 = pbVar24 + 1;" (statement_identifier "joined_r0x00037454") (: ":") (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";"))) (} "}")))) (expression_statement "pbVar4 = pbVar29;" (assignment_expression "pbVar4 = pbVar29" (identifier "pbVar4") (= "=") (identifier "pbVar29")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (} "}"))) (labeled_statement "LAB_000372e4:\n  if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" (statement_identifier "LAB_000372e4") (: ":") (if_statement "if (local_2c == *(byte **)puVar18) {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(local_2c == *(byte **)puVar18)" (( "(") (binary_expression "local_2c == *(byte **)puVar18" (identifier "local_2c") (== "==") (pointer_expression "*(byte **)puVar18" (* "*") (cast_expression "(byte **)puVar18" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar18")))) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))) (expression_statement "pcVar32 = FUN_000378d8;" (assignment_expression "pcVar32 = FUN_000378d8" (identifier "pcVar32") (= "=") (identifier "FUN_000378d8")) (; ";")) (expression_statement "pbVar4 = local_2c;" (assignment_expression "pbVar4 = local_2c" (identifier "pbVar4") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar26 = PTR___stack_chk_fail_00056494;" (assignment_expression "puVar26 = PTR___stack_chk_fail_00056494" (identifier "puVar26") (= "=") (identifier "PTR___stack_chk_fail_00056494")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00056494)();" (call_expression "(*(code *)PTR___stack_chk_fail_00056494)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00056494)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00056494" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00056494" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00056494"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = puVar26 + 0x26808;" (assignment_expression "puVar2 = puVar26 + 0x26808" (identifier "puVar2") (= "=") (binary_expression "puVar26 + 0x26808" (identifier "puVar26") (+ "+") (number_literal "0x26808"))) (; ";")) (expression_statement "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);" (assignment_expression "puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(puVar26 + 0x1ebdc)" (* "*") (cast_expression "(undefined4 **)(puVar26 + 0x1ebdc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x1ebdc)" (( "(") (binary_expression "puVar26 + 0x1ebdc" (identifier "puVar26") (+ "+") (number_literal "0x1ebdc")) () ")"))))) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x10) = unaff_s6;" (assignment_expression "*(byte **)(pbVar29 + -0x10) = unaff_s6" (pointer_expression "*(byte **)(pbVar29 + -0x10)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x10)" (( "(") (binary_expression "pbVar29 + -0x10" (identifier "pbVar29") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x1c) = param_1;" (assignment_expression "*(int *)(pbVar29 + -0x1c) = param_1" (pointer_expression "*(int *)(pbVar29 + -0x1c)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c)" (( "(") (binary_expression "pbVar29 + -0x1c" (identifier "pbVar29") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined **)(pbVar29 + -0x168) = puVar2;" (assignment_expression "*(undefined **)(pbVar29 + -0x168) = puVar2" (pointer_expression "*(undefined **)(pbVar29 + -0x168)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x168)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x168)" (( "(") (binary_expression "pbVar29 + -0x168" (identifier "pbVar29") (+ "+") (number_literal "-0x168")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(code **)(pbVar29 + -4) = pcVar32;" (assignment_expression "*(code **)(pbVar29 + -4) = pcVar32" (pointer_expression "*(code **)(pbVar29 + -4)" (* "*") (cast_expression "(code **)(pbVar29 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -4)" (( "(") (binary_expression "pbVar29 + -4" (identifier "pbVar29") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar32")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -8) = abStack_70;" (assignment_expression "*(byte **)(pbVar29 + -8) = abStack_70" (pointer_expression "*(byte **)(pbVar29 + -8)" (* "*") (cast_expression "(byte **)(pbVar29 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -8)" (( "(") (binary_expression "pbVar29 + -8" (identifier "pbVar29") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "abStack_70")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0xc) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0xc) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0xc)" (* "*") (cast_expression "(byte **)(pbVar29 + -0xc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0xc)" (( "(") (binary_expression "pbVar29 + -0xc" (identifier "pbVar29") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x14) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x14) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x14)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x14)" (( "(") (binary_expression "pbVar29 + -0x14" (identifier "pbVar29") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(undefined **)(pbVar29 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x18)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x18)" (( "(") (binary_expression "pbVar29 + -0x18" (identifier "pbVar29") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x20) = param_3;" (assignment_expression "*(byte **)(pbVar29 + -0x20) = param_3" (pointer_expression "*(byte **)(pbVar29 + -0x20)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x20)" (( "(") (binary_expression "pbVar29 + -0x20" (identifier "pbVar29") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined **)(pbVar29 + -0x24) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x24) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x24)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x24)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x24)" (( "(") (binary_expression "pbVar29 + -0x24" (identifier "pbVar29") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x28) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x28) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x28)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x28)" (( "(") (binary_expression "pbVar29 + -0x28" (identifier "pbVar29") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 **)(pbVar29 + -0x148) = puVar5;" (assignment_expression "*(undefined4 **)(pbVar29 + -0x148) = puVar5" (pointer_expression "*(undefined4 **)(pbVar29 + -0x148)" (* "*") (cast_expression "(undefined4 **)(pbVar29 + -0x148)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x148)" (( "(") (binary_expression "pbVar29 + -0x148" (identifier "pbVar29") (+ "+") (number_literal "-0x148")) () ")")))) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar4 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x15c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x15c)" (( "(") (binary_expression "pbVar29 + -0x15c" (identifier "pbVar29") (+ "+") (number_literal "-0x15c")) () ")")))) (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = (uint)*pbVar4;" (assignment_expression "uVar3 = (uint)*pbVar4" (identifier "uVar3") (= "=") (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x2c) = *puVar5" (pointer_expression "*(undefined4 *)(pbVar29 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x2c)" (( "(") (binary_expression "pbVar29 + -0x2c" (identifier "pbVar29") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "pbVar22 = pbVar14;" (assignment_expression "pbVar22 = pbVar14" (identifier "pbVar22") (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" (identifier "pbVar23") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (uVar3 != 0) {\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar24 = pbVar29 + -0x130;\n    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);\n    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);\n    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);\n    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;\n    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;\n    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;\n    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;\n    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;\n    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;\n    unaff_s5 = param_4;\n    pbVar31 = pbVar4;\n    do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);\n  }" ({ "{") (expression_statement "pbVar24 = pbVar29 + -0x130;" (assignment_expression "pbVar24 = pbVar29 + -0x130" (identifier "pbVar24") (= "=") (binary_expression "pbVar29 + -0x130" (identifier "pbVar29") (+ "+") (number_literal "-0x130"))) (; ";")) (expression_statement "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);" (assignment_expression "param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" (identifier "param_2") (= "=") (cast_expression "(byte *)(*(uint *)(pbVar29 + 0x10) & 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 0x10)" (( "(") (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x10" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);" (assignment_expression "puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" (identifier "puVar18") (= "=") (cast_expression "(undefined *)(*(uint *)(pbVar29 + 0x10) & 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 2)" (( "(") (binary_expression "*(uint *)(pbVar29 + 0x10) & 2" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x144)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x144)" (( "(") (binary_expression "pbVar29 + -0x144" (identifier "pbVar29") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar26 + 0x1e988)" (* "*") (cast_expression "(undefined4 *)(puVar26 + 0x1e988)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x1e988)" (( "(") (binary_expression "puVar26 + 0x1e988" (identifier "puVar26") (+ "+") (number_literal "0x1e988")) () ")"))))) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;" (assignment_expression "*(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(pbVar29 + -0x154)" (* "*") (cast_expression "(int *)(pbVar29 + -0x154)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x154)" (( "(") (binary_expression "pbVar29 + -0x154" (identifier "pbVar29") (+ "+") (number_literal "-0x154")) () ")")))) (= "=") (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x5150" (pointer_expression "*(int *)(puVar26 + 0x1e840)" (* "*") (cast_expression "(int *)(puVar26 + 0x1e840)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x1e840)" (( "(") (binary_expression "puVar26 + 0x1e840" (identifier "puVar26") (+ "+") (number_literal "0x1e840")) () ")")))) (+ "+") (number_literal "0x5150"))) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;" (assignment_expression "*(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(pbVar29 + -0x138)" (* "*") (cast_expression "(int *)(pbVar29 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x138)" (( "(") (binary_expression "pbVar29 + -0x138" (identifier "pbVar29") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (binary_expression "*(int *)(puVar26 + 0x1e99c) + 0x71d4" (pointer_expression "*(int *)(puVar26 + 0x1e99c)" (* "*") (cast_expression "(int *)(puVar26 + 0x1e99c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x1e99c)" (( "(") (binary_expression "puVar26 + 0x1e99c" (identifier "puVar26") (+ "+") (number_literal "0x1e99c")) () ")")))) (+ "+") (number_literal "0x71d4"))) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;" (assignment_expression "*(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(pbVar29 + -0x13c)" (* "*") (cast_expression "(int *)(pbVar29 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x13c)" (( "(") (binary_expression "pbVar29 + -0x13c" (identifier "pbVar29") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar26 + 0x1e840) + 0x724" (pointer_expression "*(int *)(puVar26 + 0x1e840)" (* "*") (cast_expression "(int *)(puVar26 + 0x1e840)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x1e840)" (( "(") (binary_expression "puVar26 + 0x1e840" (identifier "puVar26") (+ "+") (number_literal "0x1e840")) () ")")))) (+ "+") (number_literal "0x724"))) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;" (assignment_expression "*(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + -0x14c)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x14c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x14c)" (( "(") (binary_expression "pbVar29 + -0x14c" (identifier "pbVar29") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "*(uint *)(pbVar29 + 0x10) & 1" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;" (assignment_expression "*(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + -0x150)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x150)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x150)" (( "(") (binary_expression "pbVar29 + -0x150" (identifier "pbVar29") (+ "+") (number_literal "-0x150")) () ")")))) (= "=") (binary_expression "*(uint *)(pbVar29 + 0x10) & 0x20" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0x20"))) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;" (assignment_expression "*(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + -0x140)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x140)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x140)" (( "(") (binary_expression "pbVar29 + -0x140" (identifier "pbVar29") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (binary_expression "*(uint *)(pbVar29 + 0x10) & 5" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "5"))) (; ";")) (expression_statement "unaff_s5 = param_4;" (assignment_expression "unaff_s5 = param_4" (identifier "unaff_s5") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar31 = pbVar4;" (assignment_expression "pbVar31 = pbVar4" (identifier "pbVar31") (= "=") (identifier "pbVar4")) (; ";")) (do_statement "do {\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    } while (uVar3 != 0);" (do "do") (compound_statement "{\n      uVar19 = uVar3;\n      if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }\n      uVar3 = uVar19 - 0x21 & 0xff;\n      if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }\n      uVar7 = 1;\n      uVar3 = uVar19;\n      if (pbVar23 == pbVar14) goto LAB_00037c78;\n      uVar3 = (uint)*pbVar23;\n      if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }\n      uVar7 = 1;\n      if (uVar3 != uVar19) goto LAB_00037c78;\n      pbVar31 = *(byte **)(pbVar29 + -0x15c);\n      unaff_s5 = 0;\n      uVar3 = (uint)*pbVar31;\n      pbVar23 = pbVar23 + 1;\n      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;\n    }" ({ "{") (expression_statement "uVar19 = uVar3;" (assignment_expression "uVar19 = uVar3" (identifier "uVar19") (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);\n      }" ({ "{") (expression_statement "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))()" (identifier "piVar6") (= "=") (cast_expression "(int *)(**(code **)(puVar2 + -0x7dac))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar2 + -0x7dac))()" (parenthesized_expression "(**(code **)(puVar2 + -0x7dac))" (( "(") (pointer_expression "**(code **)(puVar2 + -0x7dac)" (* "*") (pointer_expression "*(code **)(puVar2 + -0x7dac)" (* "*") (cast_expression "(code **)(puVar2 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7dac)" (( "(") (binary_expression "puVar2 + -0x7dac" (identifier "puVar2") (+ "+") (number_literal "-0x7dac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined **)(pbVar29 + -0x168)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x168)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x168)" (( "(") (binary_expression "pbVar29 + -0x168" (identifier "pbVar29") (+ "+") (number_literal "-0x168")) () ")"))))) (; ";")) (expression_statement "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);" (assignment_expression "uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" (identifier "uVar19") (= "=") (binary_expression "(uint)*(byte *)(*piVar6 + uVar3 * 4 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*piVar6 + uVar3 * 4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + uVar3 * 4 + 3)" (( "(") (binary_expression "*piVar6 + uVar3 * 4 + 3" (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar3 = uVar19 - 0x21 & 0xff;" (assignment_expression "uVar3 = uVar19 - 0x21 & 0xff" (identifier "uVar3") (= "=") (binary_expression "uVar19 - 0x21 & 0xff" (binary_expression "uVar19 - 0x21" (identifier "uVar19") (- "-") (number_literal "0x21")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar3 < 0x3c) {\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" (if "if") (parenthesized_expression "(uVar3 < 0x3c)" (( "(") (binary_expression "uVar3 < 0x3c" (identifier "uVar3") (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();\n        return uVar3;\n      }" ({ "{") (expression_statement "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();" (assignment_expression "uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" (identifier "uVar3") (= "=") (call_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))()" (parenthesized_expression "(*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))" (( "(") (pointer_expression "*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" (* "*") (cast_expression "(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4))" (( "(") (binary_expression "puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" (identifier "puVar2") (+ "+") (pointer_expression "*(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" (* "*") (cast_expression "(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pbVar29 + -0x154) + uVar3 * 4)" (( "(") (binary_expression "*(int *)(pbVar29 + -0x154) + uVar3 * 4" (pointer_expression "*(int *)(pbVar29 + -0x154)" (* "*") (cast_expression "(int *)(pbVar29 + -0x154)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x154)" (( "(") (binary_expression "pbVar29 + -0x154" (identifier "pbVar29") (+ "+") (number_literal "-0x154")) () ")")))) (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar3 = uVar19;" (assignment_expression "uVar3 = uVar19" (identifier "uVar3") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (pbVar23 == pbVar14) goto LAB_00037c78;" (if "if") (parenthesized_expression "(pbVar23 == pbVar14)" (( "(") (binary_expression "pbVar23 == pbVar14" (identifier "pbVar23") (== "==") (identifier "pbVar14")) () ")")) (goto_statement "goto LAB_00037c78;" (goto "goto") (statement_identifier "LAB_00037c78") (; ";"))) (expression_statement "uVar3 = (uint)*pbVar23;" (assignment_expression "uVar3 = (uint)*pbVar23" (identifier "uVar3") (= "=") (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar23"))) (; ";")) (if_statement "if (param_2 != (byte *)0x0) {\n        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 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        pcVar32 = *(code **)(puVar2 + -0x7dac);\n        *(uint *)(pbVar29 + -0x158) = uVar19;\n        piVar6 = (int *)(*pcVar32)();\n        puVar2 = *(undefined **)(pbVar29 + -0x168);\n        uVar19 = *(uint *)(pbVar29 + -0x158);\n        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);\n      }" ({ "{") (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7dac);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7dac)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(puVar2 + -0x7dac)" (* "*") (cast_expression "(code **)(puVar2 + -0x7dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7dac)" (( "(") (binary_expression "puVar2 + -0x7dac" (identifier "puVar2") (+ "+") (number_literal "-0x7dac")) () ")"))))) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x158) = uVar19;" (assignment_expression "*(uint *)(pbVar29 + -0x158) = uVar19" (pointer_expression "*(uint *)(pbVar29 + -0x158)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x158)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x158)" (( "(") (binary_expression "pbVar29 + -0x158" (identifier "pbVar29") (+ "+") (number_literal "-0x158")) () ")")))) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "piVar6 = (int *)(*pcVar32)();" (assignment_expression "piVar6 = (int *)(*pcVar32)()" (identifier "piVar6") (= "=") (cast_expression "(int *)(*pcVar32)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = *(undefined **)(pbVar29 + -0x168);" (assignment_expression "puVar2 = *(undefined **)(pbVar29 + -0x168)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined **)(pbVar29 + -0x168)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x168)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x168)" (( "(") (binary_expression "pbVar29 + -0x168" (identifier "pbVar29") (+ "+") (number_literal "-0x168")) () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(pbVar29 + -0x158);" (assignment_expression "uVar19 = *(uint *)(pbVar29 + -0x158)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(pbVar29 + -0x158)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x158)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x158)" (( "(") (binary_expression "pbVar29 + -0x158" (identifier "pbVar29") (+ "+") (number_literal "-0x158")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(*piVar6 + uVar3 * 4);" (assignment_expression "uVar3 = *(uint *)(*piVar6 + uVar3 * 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(*piVar6 + uVar3 * 4)" (* "*") (cast_expression "(uint *)(*piVar6 + uVar3 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar6 + uVar3 * 4)" (( "(") (binary_expression "*piVar6 + uVar3 * 4" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar3 != uVar19) goto LAB_00037c78;" (if "if") (parenthesized_expression "(uVar3 != uVar19)" (( "(") (binary_expression "uVar3 != uVar19" (identifier "uVar3") (!= "!=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00037c78;" (goto "goto") (statement_identifier "LAB_00037c78") (; ";"))) (expression_statement "pbVar31 = *(byte **)(pbVar29 + -0x15c);" (assignment_expression "pbVar31 = *(byte **)(pbVar29 + -0x15c)" (identifier "pbVar31") (= "=") (pointer_expression "*(byte **)(pbVar29 + -0x15c)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x15c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x15c)" (( "(") (binary_expression "pbVar29 + -0x15c" (identifier "pbVar29") (+ "+") (number_literal "-0x15c")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = 0;" (assignment_expression "unaff_s5 = 0" (identifier "unaff_s5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = (uint)*pbVar31;" (assignment_expression "uVar3 = (uint)*pbVar31" (identifier "uVar3") (= "=") (binary_expression "(uint)*pbVar31" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar31"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;" (assignment_expression "*(byte **)(pbVar29 + -0x15c) = pbVar31 + 1" (pointer_expression "*(byte **)(pbVar29 + -0x15c)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x15c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x15c)" (( "(") (binary_expression "pbVar29 + -0x15c" (identifier "pbVar29") (+ "+") (number_literal "-0x15c")) () ")")))) (= "=") (binary_expression "pbVar31 + 1" (identifier "pbVar31") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar23 != pbVar14) {\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" (if "if") (parenthesized_expression "(pbVar23 != pbVar14)" (( "(") (binary_expression "pbVar23 != pbVar14" (identifier "pbVar23") (!= "!=") (identifier "pbVar14")) () ")")) (compound_statement "{\n    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }\n  }" ({ "{") (if_statement "if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {\n      uVar7 = 1;\n    }\n    else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" (if "if") (parenthesized_expression "((*(uint *)(pbVar29 + 0x10) & 8) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar29 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(pbVar29 + 0x10) & 8)" (( "(") (binary_expression "*(uint *)(pbVar29 + 0x10) & 8" (pointer_expression "*(uint *)(pbVar29 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar29 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + 0x10)" (( "(") (binary_expression "pbVar29 + 0x10" (identifier "pbVar29") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar7 = 1;\n    }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" (else "else") (compound_statement "{\n      uVar7 = (uint)(*pbVar23 != 0x2f);\n    }" ({ "{") (expression_statement "uVar7 = (uint)(*pbVar23 != 0x2f);" (assignment_expression "uVar7 = (uint)(*pbVar23 != 0x2f)" (identifier "uVar7") (= "=") (call_expression "(uint)(*pbVar23 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar23 != 0x2f)" (( "(") (binary_expression "*pbVar23 != 0x2f" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (!= "!=") (number_literal "0x2f")) () ")")))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_00037c78:\n  iVar10 = *(int *)(pbVar29 + -0x2c);" (statement_identifier "LAB_00037c78") (: ":") (expression_statement "iVar10 = *(int *)(pbVar29 + -0x2c);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x2c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x2c)" (* "*") (cast_expression "(int *)(pbVar29 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x2c)" (( "(") (binary_expression "pbVar29 + -0x2c" (identifier "pbVar29") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar10 == **(int **)(pbVar29 + -0x148)) {\n    return uVar7;\n  }" (if "if") (parenthesized_expression "(iVar10 == **(int **)(pbVar29 + -0x148))" (( "(") (binary_expression "iVar10 == **(int **)(pbVar29 + -0x148)" (identifier "iVar10") (== "==") (pointer_expression "**(int **)(pbVar29 + -0x148)" (* "*") (pointer_expression "*(int **)(pbVar29 + -0x148)" (* "*") (cast_expression "(int **)(pbVar29 + -0x148)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x148)" (( "(") (binary_expression "pbVar29 + -0x148" (identifier "pbVar29") (+ "+") (number_literal "-0x148")) () ")")))))) () ")")) (compound_statement "{\n    return uVar7;\n  }" ({ "{") (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}"))) (expression_statement "pcVar32 = *(code **)(puVar2 + -0x7c4c);" (assignment_expression "pcVar32 = *(code **)(puVar2 + -0x7c4c)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(puVar2 + -0x7c4c)" (* "*") (cast_expression "(code **)(puVar2 + -0x7c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x7c4c)" (( "(") (binary_expression "puVar2 + -0x7c4c" (identifier "puVar2") (+ "+") (number_literal "-0x7c4c")) () ")"))))) (; ";")) (expression_statement "pcVar33 = rpl_fnmatch;" (assignment_expression "pcVar33 = rpl_fnmatch" (identifier "pcVar33") (= "=") (identifier "rpl_fnmatch")) (; ";")) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar27 = *(code **)(pcVar32 + 0x1dd98);" (assignment_expression "pcVar27 = *(code **)(pcVar32 + 0x1dd98)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x1dd98)" (* "*") (cast_expression "(code **)(pcVar32 + 0x1dd98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x1dd98)" (( "(") (binary_expression "pcVar32 + 0x1dd98" (identifier "pcVar32") (+ "+") (number_literal "0x1dd98")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(pbVar29 + -0x1a4) = puVar18;" (assignment_expression "*(undefined **)(pbVar29 + -0x1a4) = puVar18" (pointer_expression "*(undefined **)(pbVar29 + -0x1a4)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x1a4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1a4)" (( "(") (binary_expression "pbVar29 + -0x1a4" (identifier "pbVar29") (+ "+") (number_literal "-0x1a4")) () ")")))) (= "=") (identifier "puVar18")) (; ";")) (expression_statement "piVar6 = *(int **)(pcVar32 + 0x1dddc);" (assignment_expression "piVar6 = *(int **)(pcVar32 + 0x1dddc)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(pcVar32 + 0x1dddc)" (* "*") (cast_expression "(int **)(pcVar32 + 0x1dddc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x1dddc)" (( "(") (binary_expression "pcVar32 + 0x1dddc" (identifier "pcVar32") (+ "+") (number_literal "0x1dddc")) () ")"))))) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x188) = pbVar31;" (assignment_expression "*(byte **)(pbVar29 + -0x188) = pbVar31" (pointer_expression "*(byte **)(pbVar29 + -0x188)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x188)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x188)" (( "(") (binary_expression "pbVar29 + -0x188" (identifier "pbVar29") (+ "+") (number_literal "-0x188")) () ")")))) (= "=") (identifier "pbVar31")) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x1a0) = uVar3;" (assignment_expression "*(uint *)(pbVar29 + -0x1a0) = uVar3" (pointer_expression "*(uint *)(pbVar29 + -0x1a0)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x1a0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1a0)" (( "(") (binary_expression "pbVar29 + -0x1a0" (identifier "pbVar29") (+ "+") (number_literal "-0x1a0")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;" (assignment_expression "*(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08" (pointer_expression "*(code **)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(code **)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")")))) (= "=") (binary_expression "pcVar32 + 0x25a08" (identifier "pcVar32") (+ "+") (number_literal "0x25a08"))) (; ";")) (expression_statement "*(code **)(pbVar29 + -0x184) = pcVar33;" (assignment_expression "*(code **)(pbVar29 + -0x184) = pcVar33" (pointer_expression "*(code **)(pbVar29 + -0x184)" (* "*") (cast_expression "(code **)(pbVar29 + -0x184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x184)" (( "(") (binary_expression "pbVar29 + -0x184" (identifier "pbVar29") (+ "+") (number_literal "-0x184")) () ")")))) (= "=") (identifier "pcVar33")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x18c) = pbVar24;" (assignment_expression "*(byte **)(pbVar29 + -0x18c) = pbVar24" (pointer_expression "*(byte **)(pbVar29 + -0x18c)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x18c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x18c)" (( "(") (binary_expression "pbVar29 + -0x18c" (identifier "pbVar29") (+ "+") (number_literal "-0x18c")) () ")")))) (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -400) = pbVar23;" (assignment_expression "*(byte **)(pbVar29 + -400) = pbVar23" (pointer_expression "*(byte **)(pbVar29 + -400)" (* "*") (cast_expression "(byte **)(pbVar29 + -400)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -400)" (( "(") (binary_expression "pbVar29 + -400" (identifier "pbVar29") (+ "+") (number_literal "-400")) () ")")))) (= "=") (identifier "pbVar23")) (; ";")) (expression_statement "*(uint *)(pbVar29 + -0x194) = unaff_s5;" (assignment_expression "*(uint *)(pbVar29 + -0x194) = unaff_s5" (pointer_expression "*(uint *)(pbVar29 + -0x194)" (* "*") (cast_expression "(uint *)(pbVar29 + -0x194)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x194)" (( "(") (binary_expression "pbVar29 + -0x194" (identifier "pbVar29") (+ "+") (number_literal "-0x194")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(undefined **)(pbVar29 + -0x198) = unaff_s4;" (assignment_expression "*(undefined **)(pbVar29 + -0x198) = unaff_s4" (pointer_expression "*(undefined **)(pbVar29 + -0x198)" (* "*") (cast_expression "(undefined **)(pbVar29 + -0x198)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x198)" (( "(") (binary_expression "pbVar29 + -0x198" (identifier "pbVar29") (+ "+") (number_literal "-0x198")) () ")")))) (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x19c) = pbVar14;" (assignment_expression "*(byte **)(pbVar29 + -0x19c) = pbVar14" (pointer_expression "*(byte **)(pbVar29 + -0x19c)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x19c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x19c)" (( "(") (binary_expression "pbVar29 + -0x19c" (identifier "pbVar29") (+ "+") (number_literal "-0x19c")) () ")")))) (= "=") (identifier "pbVar14")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x1a8) = param_2;" (assignment_expression "*(byte **)(pbVar29 + -0x1a8) = param_2" (pointer_expression "*(byte **)(pbVar29 + -0x1a8)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x1a8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1a8)" (( "(") (binary_expression "pbVar29 + -0x1a8" (identifier "pbVar29") (+ "+") (number_literal "-0x1a8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x1bc) = iVar10;" (assignment_expression "*(int *)(pbVar29 + -0x1bc) = iVar10" (pointer_expression "*(int *)(pbVar29 + -0x1bc)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1bc)" (( "(") (binary_expression "pbVar29 + -0x1bc" (identifier "pbVar29") (+ "+") (number_literal "-0x1bc")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x1c0) = pbVar13;" (assignment_expression "*(byte **)(pbVar29 + -0x1c0) = pbVar13" (pointer_expression "*(byte **)(pbVar29 + -0x1c0)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x1c0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1c0)" (( "(") (binary_expression "pbVar29 + -0x1c0" (identifier "pbVar29") (+ "+") (number_literal "-0x1c0")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x1ac) = *piVar6;" (assignment_expression "*(int *)(pbVar29 + -0x1ac) = *piVar6" (pointer_expression "*(int *)(pbVar29 + -0x1ac)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1ac)" (( "(") (binary_expression "pbVar29 + -0x1ac" (identifier "pbVar29") (+ "+") (number_literal "-0x1ac")) () ")")))) (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "iVar10 = (*pcVar27)();" (assignment_expression "iVar10 = (*pcVar27)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar10 != 1) {\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar10 != 1)" (( "(") (binary_expression "iVar10 != 1" (identifier "iVar10") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    puVar17 = pbVar29 + -0x1b4;\n    pcVar32 = *(code **)(iVar28 + -0x7bec);\n    puVar20 = pbVar29 + -0x1bc;\n    *(undefined4 *)(pbVar29 + -0x1b4) = 0;\n    *(undefined4 *)(pbVar29 + -0x1b0) = 0;\n    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);\n    uVar3 = iVar10 + 1;\n    iVar28 = *(int *)(pbVar29 + -0x1d0);\n    if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }\n  }" ({ "{") (expression_statement "puVar17 = pbVar29 + -0x1b4;" (assignment_expression "puVar17 = pbVar29 + -0x1b4" (identifier "puVar17") (= "=") (binary_expression "pbVar29 + -0x1b4" (identifier "pbVar29") (+ "+") (number_literal "-0x1b4"))) (; ";")) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) (; ";")) (expression_statement "puVar20 = pbVar29 + -0x1bc;" (assignment_expression "puVar20 = pbVar29 + -0x1bc" (identifier "puVar20") (= "=") (binary_expression "pbVar29 + -0x1bc" (identifier "pbVar29") (+ "+") (number_literal "-0x1bc"))) (; ";")) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b4) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b4) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b4)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1b4)" (( "(") (binary_expression "pbVar29 + -0x1b4" (identifier "pbVar29") (+ "+") (number_literal "-0x1b4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(pbVar29 + -0x1b0) = 0;" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1b0) = 0" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1b0)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1b0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1b0)" (( "(") (binary_expression "pbVar29 + -0x1b0" (identifier "pbVar29") (+ "+") (number_literal "-0x1b0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = (*pcVar32)(0,puVar20,0,puVar17);" (assignment_expression "iVar10 = (*pcVar32)(0,puVar20,0,puVar17)" (identifier "iVar10") (= "=") (call_expression "(*pcVar32)(0,puVar20,0,puVar17)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(0,puVar20,0,puVar17)" (( "(") (number_literal "0") (, ",") (identifier "puVar20") (, ",") (number_literal "0") (, ",") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "uVar3 = iVar10 + 1;" (assignment_expression "uVar3 = iVar10 + 1" (identifier "uVar3") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (uVar3 != 0) {\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n      uVar15 = 0x129;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar10 == 0) goto LAB_000389f4;\n      piVar11 = (int *)(pbVar29 + -0x1c0);\n      piVar16 = piVar11;\n      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);\n      iVar25 = iVar10 + 1;\n      iVar28 = *(int *)(pbVar29 + -0x1d0);\n      if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7c30)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar28 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7c30)" (( "(") (binary_expression "iVar28 + -0x7c30" (identifier "iVar28") (+ "+") (number_literal "-0x7c30")) () ")"))))) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "uVar15 = 0x129;" (assignment_expression "uVar15 = 0x129" (identifier "uVar15") (= "=") (number_literal "0x129")) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_000389f4;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000389f4;" (goto "goto") (statement_identifier "LAB_000389f4") (; ";"))) (expression_statement "piVar11 = (int *)(pbVar29 + -0x1c0);" (assignment_expression "piVar11 = (int *)(pbVar29 + -0x1c0)" (identifier "piVar11") (= "=") (cast_expression "(int *)(pbVar29 + -0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c0)" (( "(") (binary_expression "pbVar29 + -0x1c0" (identifier "pbVar29") (+ "+") (number_literal "-0x1c0")) () ")")))) (; ";")) (expression_statement "piVar16 = piVar11;" (assignment_expression "piVar16 = piVar11" (identifier "piVar16") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7bec)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) () ")")) (argument_list "(0,piVar11,0,puVar17)" (( "(") (number_literal "0") (, ",") (identifier "piVar11") (, ",") (number_literal "0") (, ",") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "iVar25 = iVar10 + 1;" (assignment_expression "iVar25 = iVar10 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar25 != 0) {\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);\n        iVar28 = *(int *)(pbVar29 + -0x1d0);\n        if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }\n        uVar19 = uVar3 + iVar25;\n        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }\nLAB_00038914:\n        uVar3 = 0xffffffff;\n        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();\n        iVar10 = *(int *)(pbVar29 + -0x1d0);\n        *puVar5 = 0xc;\n        goto LAB_00038784;\n      }" ({ "{") (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar28 + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7c30))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7c30)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7c30)" (* "*") (cast_expression "(code **)(iVar28 + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7c30)" (( "(") (binary_expression "iVar28 + -0x7c30" (identifier "iVar28") (+ "+") (number_literal "-0x7c30")) () ")"))))) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar15 = 0x12d;\n          goto LAB_000389f4;\n        }" ({ "{") (expression_statement "uVar15 = 0x12d;" (assignment_expression "uVar15 = 0x12d" (identifier "uVar15") (= "=") (number_literal "0x12d")) (; ";")) (goto_statement "goto LAB_000389f4;" (goto "goto") (statement_identifier "LAB_000389f4") (; ";")) (} "}"))) (expression_statement "uVar19 = uVar3 + iVar25;" (assignment_expression "uVar19 = uVar3 + iVar25" (identifier "uVar19") (= "=") (binary_expression "uVar3 + iVar25" (identifier "uVar3") (+ "+") (identifier "iVar25"))) (; ";")) (if_statement "if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" (if "if") (parenthesized_expression "((uVar3 <= uVar19) && (uVar19 < 0x40000000))" (( "(") (binary_expression "(uVar3 <= uVar19) && (uVar19 < 0x40000000)" (parenthesized_expression "(uVar3 <= uVar19)" (( "(") (binary_expression "uVar3 <= uVar19" (identifier "uVar3") (<= "<=") (identifier "uVar19")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 < 0x40000000)" (( "(") (binary_expression "uVar19 < 0x40000000" (identifier "uVar19") (< "<") (number_literal "0x40000000")) () ")"))) () ")")) (compound_statement "{\n          if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          uVar15 = 0x147;\nLAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);\n          return uVar3;\n        }" ({ "{") (if_statement "if (uVar19 < 2000) {\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }\n          else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" (if "if") (parenthesized_expression "(uVar19 < 2000)" (( "(") (binary_expression "uVar19 < 2000" (identifier "uVar19") (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);\n            puVar21 = pbVar29 + iVar8 + -0x1d0;\n            piVar16 = (int *)(puVar21 + uVar3 * 4);\n            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);\n            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" ({ "{") (expression_statement "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8)" (identifier "iVar8") (= "=") (unary_expression "-(uVar19 * 4 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar19 * 4 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar19 * 4 + 7 & 0xfffffff8" (binary_expression "uVar19 * 4 + 7" (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar21 = pbVar29 + iVar8 + -0x1d0;" (assignment_expression "puVar21 = pbVar29 + iVar8 + -0x1d0" (identifier "puVar21") (= "=") (binary_expression "pbVar29 + iVar8 + -0x1d0" (binary_expression "pbVar29 + iVar8" (identifier "pbVar29") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x1d0"))) (; ";")) (expression_statement "piVar16 = (int *)(puVar21 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(puVar21 + uVar3 * 4)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar21 + uVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + uVar3 * 4)" (( "(") (binary_expression "puVar21 + uVar3 * 4" (identifier "puVar21") (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7bec)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) () ")")) (argument_list "(puVar21,puVar20,uVar3,puVar17)" (( "(") (identifier "puVar21") (, ",") (identifier "puVar20") (, ",") (identifier "uVar3") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" (( "(") (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (* "*") (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (* "*") (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (( "(") (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")")))) (+ "+") (number_literal "-0x7c30")) () ")"))))) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" ({ "{") (expression_statement "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);" (call_expression "(**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(**(code **)(iVar28 + -0x7bec))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7bec)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) () ")")) (argument_list "(piVar16,piVar11,iVar25,puVar17)" (( "(") (identifier "piVar16") (, ",") (identifier "piVar11") (, ",") (identifier "iVar25") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + iVar8 + -0x1d8)" (* "*") (cast_expression "(byte **)(pbVar29 + iVar8 + -0x1d8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + iVar8 + -0x1d8)" (( "(") (binary_expression "pbVar29 + iVar8 + -0x1d8" (binary_expression "pbVar29 + iVar8" (identifier "pbVar29") (+ "+") (identifier "iVar8")) (+ "+") (number_literal "-0x1d8")) () ")")))) (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_00036404(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "FUN_00036404") (argument_list "(puVar21,piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar21") (, ",") (identifier "piVar16") (, ",") (binary_expression "piVar16 + iVar10" (identifier "piVar16") (+ "+") (identifier "iVar10")) (, ",") (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar22 << 0x1d)" (( "(") (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar22")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" (else "else") (compound_statement "{\n            iVar8 = (**(code **)(iVar28 + -0x7c9c))();\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 == 0) goto LAB_00038914;\n            pcVar32 = *(code **)(iVar28 + -0x7bec);\n            *(int *)(pbVar29 + -0x1c4) = iVar8;\n            piVar16 = (int *)(iVar8 + uVar3 * 4);\n            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);\n            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);\n            iVar28 = *(int *)(pbVar29 + -0x1d0);\n            if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }\n          }" ({ "{") (expression_statement "iVar8 = (**(code **)(iVar28 + -0x7c9c))();" (assignment_expression "iVar8 = (**(code **)(iVar28 + -0x7c9c))()" (identifier "iVar8") (= "=") (call_expression "(**(code **)(iVar28 + -0x7c9c))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7c9c))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7c9c)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7c9c)" (* "*") (cast_expression "(code **)(iVar28 + -0x7c9c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7c9c)" (( "(") (binary_expression "iVar28 + -0x7c9c" (identifier "iVar28") (+ "+") (number_literal "-0x7c9c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_00038914;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00038914;" (goto "goto") (statement_identifier "LAB_00038914") (; ";"))) (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) (; ";")) (expression_statement "*(int *)(pbVar29 + -0x1c4) = iVar8;" (assignment_expression "*(int *)(pbVar29 + -0x1c4) = iVar8" (pointer_expression "*(int *)(pbVar29 + -0x1c4)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c4)" (( "(") (binary_expression "pbVar29 + -0x1c4" (identifier "pbVar29") (+ "+") (number_literal "-0x1c4")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "piVar16 = (int *)(iVar8 + uVar3 * 4);" (assignment_expression "piVar16 = (int *)(iVar8 + uVar3 * 4)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar8 + uVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + uVar3 * 4)" (( "(") (binary_expression "iVar8 + uVar3 * 4" (identifier "iVar8") (+ "+") (binary_expression "uVar3 * 4" (identifier "uVar3") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "(*pcVar32)(iVar8,puVar20,uVar3,puVar17);" (call_expression "(*pcVar32)(iVar8,puVar20,uVar3,puVar17)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar8,puVar20,uVar3,puVar17)" (( "(") (identifier "iVar8") (, ",") (identifier "puVar20") (, ",") (identifier "uVar3") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);" (assignment_expression "iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17)" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))" (( "(") (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (* "*") (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (* "*") (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c30)" (( "(") (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c30" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")")))) (+ "+") (number_literal "-0x7c30")) () ")"))))) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "iVar28 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar28 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar32 = *(code **)(iVar28 + -0x7bec);\n              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);\n              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);\n              *(byte **)(pbVar29 + -0x1d8) = pbVar22;\n              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);\n              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;\n              iVar10 = *(int *)(pbVar29 + -0x1d0);\n              goto LAB_00038784;\n            }" ({ "{") (expression_statement "pcVar32 = *(code **)(iVar28 + -0x7bec);" (assignment_expression "pcVar32 = *(code **)(iVar28 + -0x7bec)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(iVar28 + -0x7bec)" (* "*") (cast_expression "(code **)(iVar28 + -0x7bec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7bec)" (( "(") (binary_expression "iVar28 + -0x7bec" (identifier "iVar28") (+ "+") (number_literal "-0x7bec")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);" (assignment_expression "*(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4)" (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c4)" (( "(") (binary_expression "pbVar29 + -0x1c4" (identifier "pbVar29") (+ "+") (number_literal "-0x1c4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c4)" (( "(") (binary_expression "pbVar29 + -0x1c4" (identifier "pbVar29") (+ "+") (number_literal "-0x1c4")) () ")"))))) (; ";")) (expression_statement "(*pcVar32)(piVar16,piVar11,iVar25,puVar17);" (call_expression "(*pcVar32)(piVar16,piVar11,iVar25,puVar17)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(piVar16,piVar11,iVar25,puVar17)" (( "(") (identifier "piVar16") (, ",") (identifier "piVar11") (, ",") (identifier "iVar25") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x1d8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1d8)" (( "(") (binary_expression "pbVar29 + -0x1d8" (identifier "pbVar29") (+ "+") (number_literal "-0x1d8")) () ")")))) (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "FUN_00036404") (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,\n                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c4)" (( "(") (binary_expression "pbVar29 + -0x1c4" (identifier "pbVar29") (+ "+") (number_literal "-0x1c4")) () ")")))) (, ",") (identifier "piVar16") (, ",") (binary_expression "piVar16 + iVar10" (identifier "piVar16") (+ "+") (identifier "iVar10")) (, ",") (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar22 << 0x1d)" (( "(") (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar22")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))\n              ;" (call_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))" (parenthesized_expression "(**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))" (( "(") (pointer_expression "**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" (* "*") (pointer_expression "*(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" (* "*") (cast_expression "(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pbVar29 + -0x1d0) + -0x7c20)" (( "(") (binary_expression "*(int *)(pbVar29 + -0x1d0) + -0x7c20" (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")")))) (+ "+") (number_literal "-0x7c20")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(pbVar29 + -0x1c4))" (( "(") (pointer_expression "*(undefined4 *)(pbVar29 + -0x1c4)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1c4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1c4)" (( "(") (binary_expression "pbVar29 + -0x1c4" (identifier "pbVar29") (+ "+") (number_literal "-0x1c4")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar15 = 0x147;" (assignment_expression "uVar15 = 0x147" (identifier "uVar15") (= "=") (number_literal "0x147")) (; ";")) (labeled_statement "LAB_000389f4:\n          uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" (statement_identifier "LAB_000389f4") (: ":") (expression_statement "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);" (assignment_expression "uVar3 = (**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(iVar28 + -0x7db0))\n                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" (parenthesized_expression "(**(code **)(iVar28 + -0x7db0))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7db0)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7db0)" (* "*") (cast_expression "(code **)(iVar28 + -0x7db0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7db0)" (( "(") (binary_expression "iVar28 + -0x7db0" (identifier "iVar28") (+ "+") (number_literal "-0x7db0")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c\n                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258)" (( "(") (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f48" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar28 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + -0x7fc8)" (( "(") (binary_expression "iVar28 + -0x7fc8" (identifier "iVar28") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x4f48")) (, ",") (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x4f3c" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar28 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + -0x7fc8)" (( "(") (binary_expression "iVar28 + -0x7fc8" (identifier "iVar28") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x4f3c")) (, ",") (identifier "uVar15") (, ",") (binary_expression "*(int *)(iVar28 + -0x7fc8) + 0x5258" (pointer_expression "*(int *)(iVar28 + -0x7fc8)" (* "*") (cast_expression "(int *)(iVar28 + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + -0x7fc8)" (( "(") (binary_expression "iVar28 + -0x7fc8" (identifier "iVar28") (+ "+") (number_literal "-0x7fc8")) () ")")))) (+ "+") (number_literal "0x5258")) () ")")))) (; ";"))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (labeled_statement "LAB_00038914:\n        uVar3 = 0xffffffff;" (statement_identifier "LAB_00038914") (: ":") (expression_statement "uVar3 = 0xffffffff;" (assignment_expression "uVar3 = 0xffffffff" (identifier "uVar3") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();" (assignment_expression "puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar28 + -0x7cf8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar28 + -0x7cf8))()" (parenthesized_expression "(**(code **)(iVar28 + -0x7cf8))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7cf8)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7cf8)" (* "*") (cast_expression "(code **)(iVar28 + -0x7cf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7cf8)" (( "(") (binary_expression "iVar28 + -0x7cf8" (identifier "iVar28") (+ "+") (number_literal "-0x7cf8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (expression_statement "*puVar5 = 0xc;" (assignment_expression "*puVar5 = 0xc" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00038784;" (goto "goto") (statement_identifier "LAB_00038784") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "piVar16 = *(int **)(pbVar29 + -0x1c0);" (assignment_expression "piVar16 = *(int **)(pbVar29 + -0x1c0)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(pbVar29 + -0x1c0)" (* "*") (cast_expression "(int **)(pbVar29 + -0x1c0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1c0)" (( "(") (binary_expression "pbVar29 + -0x1c0" (identifier "pbVar29") (+ "+") (number_literal "-0x1c0")) () ")"))))) (; ";")) (expression_statement "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);" (assignment_expression "iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(iVar28 + -0x7cbc))(piVar16)" (parenthesized_expression "(**(code **)(iVar28 + -0x7cbc))" (( "(") (pointer_expression "**(code **)(iVar28 + -0x7cbc)" (* "*") (pointer_expression "*(code **)(iVar28 + -0x7cbc)" (* "*") (cast_expression "(code **)(iVar28 + -0x7cbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + -0x7cbc)" (( "(") (binary_expression "iVar28 + -0x7cbc" (identifier "iVar28") (+ "+") (number_literal "-0x7cbc")) () ")"))))) () ")")) (argument_list "(piVar16)" (( "(") (identifier "piVar16") () ")")))) (; ";")) (expression_statement "*(byte **)(pbVar29 + -0x1d8) = pbVar22;" (assignment_expression "*(byte **)(pbVar29 + -0x1d8) = pbVar22" (pointer_expression "*(byte **)(pbVar29 + -0x1d8)" (* "*") (cast_expression "(byte **)(pbVar29 + -0x1d8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1d8)" (( "(") (binary_expression "pbVar29 + -0x1d8" (identifier "pbVar29") (+ "+") (number_literal "-0x1d8")) () ")")))) (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);" (assignment_expression "uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "uVar3") (= "=") (call_expression "FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (identifier "FUN_000378d8") (argument_list "(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,\n                       (uint)((int)pbVar22 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(pbVar29 + -0x1bc)" (* "*") (cast_expression "(undefined4 *)(pbVar29 + -0x1bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1bc)" (( "(") (binary_expression "pbVar29 + -0x1bc" (identifier "pbVar29") (+ "+") (number_literal "-0x1bc")) () ")")))) (, ",") (identifier "piVar16") (, ",") (binary_expression "(int)piVar16 + iVar10" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (identifier "iVar10")) (, ",") (binary_expression "(uint)((int)pbVar22 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar22 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar22 << 0x1d)" (( "(") (binary_expression "(int)pbVar22 << 0x1d" (cast_expression "(int)pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar22")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar10 = *(int *)(pbVar29 + -0x1d0);" (assignment_expression "iVar10 = *(int *)(pbVar29 + -0x1d0)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(pbVar29 + -0x1d0)" (* "*") (cast_expression "(int *)(pbVar29 + -0x1d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar29 + -0x1d0)" (( "(") (binary_expression "pbVar29 + -0x1d0" (identifier "pbVar29") (+ "+") (number_literal "-0x1d0")) () ")"))))) (; ";")) (labeled_statement "LAB_00038784:\n  piVar11 = *(int **)(pbVar29 + -0x1ac);" (statement_identifier "LAB_00038784") (: ":") (expression_statement "piVar11 = *(int **)(pbVar29 + -0x1ac);" (assignment_expression "piVar11 = *(int **)(pbVar29 + -0x1ac)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(pbVar29 + -0x1ac)" (* "*") (cast_expression "(int **)(pbVar29 + -0x1ac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar29 + -0x1ac)" (( "(") (binary_expression "pbVar29 + -0x1ac" (identifier "pbVar29") (+ "+") (number_literal "-0x1ac")) () ")"))))) (; ";"))) (if_statement "if (piVar11 == (int *)*piVar6) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(piVar11 == (int *)*piVar6)" (( "(") (binary_expression "piVar11 == (int *)*piVar6" (identifier "piVar11") (== "==") (cast_expression "(int *)*piVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar6" (* "*") (identifier "piVar6")))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar10 + -0x7c4c))();" (call_expression "(**(code **)(iVar10 + -0x7c4c))()" (parenthesized_expression "(**(code **)(iVar10 + -0x7c4c))" (( "(") (pointer_expression "**(code **)(iVar10 + -0x7c4c)" (* "*") (pointer_expression "*(code **)(iVar10 + -0x7c4c)" (* "*") (cast_expression "(code **)(iVar10 + -0x7c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + -0x7c4c)" (( "(") (binary_expression "iVar10 + -0x7c4c" (identifier "iVar10") (+ "+") (number_literal "-0x7c4c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" (if "if") (parenthesized_expression "((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3]))" (( "(") (binary_expression "(piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])" (parenthesized_expression "(piVar11[2] == piVar16[2])" (( "(") (binary_expression "piVar11[2] == piVar16[2]" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(piVar11[3] == piVar16[3])" (( "(") (binary_expression "piVar11[3] == piVar16[3]" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (== "==") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (compound_statement "{\n    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);\n  }" ({ "{") (return_statement "return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);" (return "return") (call_expression "(uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*piVar11 == *piVar16 && piVar11[1] == piVar16[1])" (( "(") (binary_expression "*piVar11 == *piVar16 && piVar11[1] == piVar16[1]" (binary_expression "*piVar11 == *piVar16" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (&& "&&") (binary_expression "piVar11[1] == piVar16[1]" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")))) () ")"))) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))
(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: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (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: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (while_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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 (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: (number_literal) right: (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)))) (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)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (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: (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: (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: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (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)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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: (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: (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: (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)))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier) right: (number_literal))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) 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: (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: (pointer_expression argument: (cast_expression 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (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)) 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)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) 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: (pointer_expression argument: (cast_expression 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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (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: (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: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (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 (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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 (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: (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 (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))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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))))))) (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (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: (identifier) right: (number_literal))))))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (return_statement (number_literal)))))

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

{
  bool bVar1;
  undefined *puVar2;
  uint uVar3;
  byte *pbVar4;
  undefined4 *puVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  byte bVar12;
  int *piVar11;
  byte *pbVar13;
  byte *pbVar14;
  undefined4 uVar15;
  int *piVar16;
  undefined1 *puVar17;
  undefined *puVar18;
  uint uVar19;
  undefined *unaff_s4;
  uint unaff_s5;
  undefined1 *puVar20;
  undefined1 *puVar21;
  byte *unaff_s6;
  byte *pbVar22;
  byte *pbVar23;
  byte *pbVar24;
  int iVar25;
  undefined *puVar26;
  code *pcVar27;
  int iVar28;
  byte *pbVar29;
  undefined1 *puVar30;
  byte *pbVar31;
  code *pcVar32;
  code *pcVar33;
  byte abStack_70 [24];
  byte *local_48;
  int *local_34;
  int local_30;
  byte *local_2c;
  
  puVar18 = PTR___stack_chk_guard_000564b4;
  pbVar29 = abStack_70;
  pbVar31 = abStack_70;
  pbVar24 = param_2 + 1;
  local_30 = 0;
  local_2c = *(byte **)PTR___stack_chk_guard_000564b4;
  pbVar13 = param_2;
  pbVar14 = param_3;
  local_48 = (byte *)(*(code *)PTR_strlen_00056424)(param_2);
  puVar26 = PTR_DAT_00056260;
  iVar10 = (int)(char)param_2[1];
  if (iVar10 != 0) {
    unaff_s5 = 0;
    puVar2 = PTR_wcrtomb_00056118 + 0x724;
    local_34 = &local_30;
    pbVar4 = abStack_70;
    unaff_s6 = pbVar24;
LAB_0003728c:
    do {
      pbVar29 = pbVar4;
      unaff_s4 = puVar26;
      if (iVar10 == 0x5b) {
        pbVar14 = &DAT_00000021;
        if (*(int *)(puVar26 + -0x56a0) == 0) {
          iVar10 = (*(code *)PTR_getenv_0005644c)(puVar2);
          bVar12 = pbVar24[1];
          if (iVar10 != 0) {
            *(undefined4 *)(puVar26 + -0x56a0) = 1;
            if (bVar12 != 0x21) goto LAB_00037418;
            goto LAB_00037490;
          }
          *(undefined4 *)(puVar26 + -0x56a0) = 0xffffffff;
          if (bVar12 != 0x21) goto LAB_00037408;
          bVar12 = pbVar24[2];
LAB_00037494:
          pbVar4 = pbVar24 + 2;
        }
        else {
          bVar12 = pbVar24[1];
          if (bVar12 == 0x21) {
LAB_00037490:
            bVar12 = pbVar24[2];
            goto LAB_00037494;
          }
          if (*(int *)(puVar26 + -0x56a0) < 0) {
LAB_00037408:
            if (bVar12 == 0x5e) goto LAB_00037490;
          }
LAB_00037418:
          pbVar4 = pbVar24 + 1;
        }
        if (bVar12 == 0x5d) {
          pbVar4 = pbVar4 + 1;
        }
        pbVar13 = (byte *)0x5d;
        while( true ) {
          bVar12 = *pbVar4;
          pbVar24 = pbVar4 + 1;
          if (bVar12 == 0x5d) break;
          pbVar4 = pbVar24;
          if (bVar12 == 0) goto LAB_000372e4;
        }
        iVar10 = (int)(char)pbVar4[1];
      }
      else {
        pbVar13 = &DAT_c0000601;
        uVar3 = iVar10 - 0x21U & 0xff;
        pbVar14 = (byte *)(uint)(uVar3 < 0x20);
        if (pbVar14 == (byte *)0x0) {
          if ((iVar10 == 0x7c) && (unaff_s5 == 0)) {
            pbVar4 = local_48;
            if (1 < param_1 - 0x3fU) {
              pbVar4 = pbVar24 + (1 - (int)unaff_s6);
            }
            if (0x1f3b < ((uint)(pbVar4 + 7) & 0xfffffffc) - 4) break;
            pbVar14 = pbVar24 + -(int)unaff_s6;
            pbVar22 = pbVar24 + 1;
            iVar28 = -(((uint)(pbVar4 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            puVar30 = pbVar29 + iVar28;
            piVar6 = (int *)(pbVar29 + iVar28 + 0x18);
            puVar17 = (undefined1 *)(*(code *)PTR_mempcpy_000564a4)(pbVar29 + iVar28 + 0x1c);
            iVar10 = (int)(char)pbVar24[1];
            *puVar17 = 0;
            *piVar6 = 0;
            *local_34 = (int)piVar6;
            pbVar13 = unaff_s6;
            unaff_s6 = pbVar22;
            pbVar24 = pbVar22;
            pbVar29 = pbVar29 + iVar28;
            local_34 = piVar6;
            pbVar4 = puVar30;
            if (iVar10 == 0) break;
            goto LAB_0003728c;
          }
LAB_00037450:
          iVar10 = (int)(char)pbVar24[1];
        }
        else {
          while ((int)((0xc0000601U >> (uVar3 & 0x1f)) << 0x1f) < 0) {
            iVar10 = (int)(char)pbVar24[1];
            if (iVar10 != 0x28) goto joined_r0x00037454;
            pbVar14 = (byte *)0x1;
            unaff_s5 = unaff_s5 + 1;
            pbVar24 = pbVar24 + 1;
            uVar3 = 7;
          }
          if (iVar10 != 0x29) goto LAB_00037450;
          bVar1 = unaff_s5 == 0;
          unaff_s5 = unaff_s5 - 1;
          if (bVar1) {
            unaff_s5 = (uint)(param_1 - 0x3fU < 2);
            if (unaff_s5 == 0) {
              local_48 = pbVar24 + (1 - (int)unaff_s6);
            }
            if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
              iVar10 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
              puVar17 = (undefined1 *)
                        (*(code *)PTR_mempcpy_000564a4)
                                  (pbVar29 + iVar10 + 0x1c,unaff_s6,(int)pbVar24 - (int)unaff_s6);
              *puVar17 = 0;
              *(undefined4 *)(pbVar29 + iVar10 + 0x18) = 0;
              *local_34 = (int)(pbVar29 + iVar10 + 0x18);
              if (local_30 == 0) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4ef0,PTR_wcrtomb_00056118 + 0x4ee0,0x454
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
              if (pbVar24[-1] != 0x29) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4f00,PTR_wcrtomb_00056118 + 0x4ee0,0x455
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
              if (0x1f < param_1 - 0x21U) {
                uVar3 = (*(code *)PTR___assert_fail_00056330)
                                  (PTR_wcrtomb_00056118 + 0x4f14,PTR_wcrtomb_00056118 + 0x4ee0,0x4ad
                                   ,PTR_wcrtomb_00056118 + 0x5240);
                return uVar3;
              }
                    /* WARNING: Could not emulate address calculation at 0x0003755c */
                    /* WARNING: Treating indirect jump as call */
              uVar3 = (*(code *)(&_gp_1 + *(int *)(PTR_wcrtomb_00056118 +
                                                  (param_1 - 0x21U) * 4 + 0x50d0)))();
              return uVar3;
            }
            break;
          }
          iVar10 = (int)(char)pbVar24[1];
        }
joined_r0x00037454:
        pbVar24 = pbVar24 + 1;
      }
      pbVar4 = pbVar29;
    } while (iVar10 != 0);
  }
LAB_000372e4:
  if (local_2c == *(byte **)puVar18) {
    return 0xffffffff;
  }
  pcVar32 = FUN_000378d8;
  pbVar4 = local_2c;
  puVar26 = PTR___stack_chk_fail_00056494;
  (*(code *)PTR___stack_chk_fail_00056494)();
  puVar2 = puVar26 + 0x26808;
  puVar5 = *(undefined4 **)(puVar26 + 0x1ebdc);
  *(byte **)(pbVar29 + -0x10) = unaff_s6;
  *(int *)(pbVar29 + -0x1c) = param_1;
  *(undefined **)(pbVar29 + -0x168) = puVar2;
  *(code **)(pbVar29 + -4) = pcVar32;
  *(byte **)(pbVar29 + -8) = abStack_70;
  *(byte **)(pbVar29 + -0xc) = pbVar24;
  *(uint *)(pbVar29 + -0x14) = unaff_s5;
  *(undefined **)(pbVar29 + -0x18) = unaff_s4;
  *(byte **)(pbVar29 + -0x20) = param_3;
  *(undefined **)(pbVar29 + -0x24) = puVar18;
  *(byte **)(pbVar29 + -0x28) = param_2;
  *(undefined4 **)(pbVar29 + -0x148) = puVar5;
  *(byte **)(pbVar29 + -0x15c) = pbVar4 + 1;
  uVar3 = (uint)*pbVar4;
  *(undefined4 *)(pbVar29 + -0x2c) = *puVar5;
  pbVar22 = pbVar14;
  pbVar23 = pbVar13;
  if (uVar3 != 0) {
    pbVar24 = pbVar29 + -0x130;
    param_2 = (byte *)(*(uint *)(pbVar29 + 0x10) & 0x10);
    puVar18 = (undefined *)(*(uint *)(pbVar29 + 0x10) & 2);
    *(undefined4 *)(pbVar29 + -0x144) = *(undefined4 *)(puVar26 + 0x1e988);
    *(int *)(pbVar29 + -0x154) = *(int *)(puVar26 + 0x1e840) + 0x5150;
    *(int *)(pbVar29 + -0x138) = *(int *)(puVar26 + 0x1e99c) + 0x71d4;
    *(int *)(pbVar29 + -0x13c) = *(int *)(puVar26 + 0x1e840) + 0x724;
    *(uint *)(pbVar29 + -0x14c) = *(uint *)(pbVar29 + 0x10) & 1;
    *(uint *)(pbVar29 + -0x150) = *(uint *)(pbVar29 + 0x10) & 0x20;
    *(uint *)(pbVar29 + -0x140) = *(uint *)(pbVar29 + 0x10) & 5;
    unaff_s5 = param_4;
    pbVar31 = pbVar4;
    do {
      uVar19 = uVar3;
      if (param_2 != (byte *)0x0) {
        piVar6 = (int *)(**(code **)(puVar2 + -0x7dac))();
        puVar2 = *(undefined **)(pbVar29 + -0x168);
        uVar19 = (uint)*(byte *)(*piVar6 + uVar3 * 4 + 3);
      }
      uVar3 = uVar19 - 0x21 & 0xff;
      if (uVar3 < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x000379f0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar3 = (*(code *)(puVar2 + *(int *)(*(int *)(pbVar29 + -0x154) + uVar3 * 4)))();
        return uVar3;
      }
      uVar7 = 1;
      uVar3 = uVar19;
      if (pbVar23 == pbVar14) goto LAB_00037c78;
      uVar3 = (uint)*pbVar23;
      if (param_2 != (byte *)0x0) {
        pcVar32 = *(code **)(puVar2 + -0x7dac);
        *(uint *)(pbVar29 + -0x158) = uVar19;
        piVar6 = (int *)(*pcVar32)();
        puVar2 = *(undefined **)(pbVar29 + -0x168);
        uVar19 = *(uint *)(pbVar29 + -0x158);
        uVar3 = *(uint *)(*piVar6 + uVar3 * 4);
      }
      uVar7 = 1;
      if (uVar3 != uVar19) goto LAB_00037c78;
      pbVar31 = *(byte **)(pbVar29 + -0x15c);
      unaff_s5 = 0;
      uVar3 = (uint)*pbVar31;
      pbVar23 = pbVar23 + 1;
      *(byte **)(pbVar29 + -0x15c) = pbVar31 + 1;
    } while (uVar3 != 0);
  }
  uVar7 = 0;
  if (pbVar23 != pbVar14) {
    if ((*(uint *)(pbVar29 + 0x10) & 8) == 0) {
      uVar7 = 1;
    }
    else {
      uVar7 = (uint)(*pbVar23 != 0x2f);
    }
  }
LAB_00037c78:
  iVar10 = *(int *)(pbVar29 + -0x2c);
  if (iVar10 == **(int **)(pbVar29 + -0x148)) {
    return uVar7;
  }
  pcVar32 = *(code **)(puVar2 + -0x7c4c);
  pcVar33 = rpl_fnmatch;
  (*pcVar32)();
  pcVar27 = *(code **)(pcVar32 + 0x1dd98);
  *(undefined **)(pbVar29 + -0x1a4) = puVar18;
  piVar6 = *(int **)(pcVar32 + 0x1dddc);
  *(byte **)(pbVar29 + -0x188) = pbVar31;
  *(uint *)(pbVar29 + -0x1a0) = uVar3;
  *(code **)(pbVar29 + -0x1d0) = pcVar32 + 0x25a08;
  *(code **)(pbVar29 + -0x184) = pcVar33;
  *(byte **)(pbVar29 + -0x18c) = pbVar24;
  *(byte **)(pbVar29 + -400) = pbVar23;
  *(uint *)(pbVar29 + -0x194) = unaff_s5;
  *(undefined **)(pbVar29 + -0x198) = unaff_s4;
  *(byte **)(pbVar29 + -0x19c) = pbVar14;
  *(byte **)(pbVar29 + -0x1a8) = param_2;
  *(int *)(pbVar29 + -0x1bc) = iVar10;
  *(byte **)(pbVar29 + -0x1c0) = pbVar13;
  *(int *)(pbVar29 + -0x1ac) = *piVar6;
  iVar10 = (*pcVar27)();
  iVar28 = *(int *)(pbVar29 + -0x1d0);
  if (iVar10 != 1) {
    puVar17 = pbVar29 + -0x1b4;
    pcVar32 = *(code **)(iVar28 + -0x7bec);
    puVar20 = pbVar29 + -0x1bc;
    *(undefined4 *)(pbVar29 + -0x1b4) = 0;
    *(undefined4 *)(pbVar29 + -0x1b0) = 0;
    iVar10 = (*pcVar32)(0,puVar20,0,puVar17);
    uVar3 = iVar10 + 1;
    iVar28 = *(int *)(pbVar29 + -0x1d0);
    if (uVar3 != 0) {
      iVar10 = (**(code **)(iVar28 + -0x7c30))(puVar17);
      uVar15 = 0x129;
      iVar28 = *(int *)(pbVar29 + -0x1d0);
      if (iVar10 == 0) goto LAB_000389f4;
      piVar11 = (int *)(pbVar29 + -0x1c0);
      piVar16 = piVar11;
      iVar10 = (**(code **)(iVar28 + -0x7bec))(0,piVar11,0,puVar17);
      iVar25 = iVar10 + 1;
      iVar28 = *(int *)(pbVar29 + -0x1d0);
      if (iVar25 != 0) {
        iVar8 = (**(code **)(iVar28 + -0x7c30))(puVar17);
        iVar28 = *(int *)(pbVar29 + -0x1d0);
        if (iVar8 == 0) {
          uVar15 = 0x12d;
          goto LAB_000389f4;
        }
        uVar19 = uVar3 + iVar25;
        if ((uVar3 <= uVar19) && (uVar19 < 0x40000000)) {
          if (uVar19 < 2000) {
            iVar8 = -(uVar19 * 4 + 7 & 0xfffffff8);
            puVar21 = pbVar29 + iVar8 + -0x1d0;
            piVar16 = (int *)(puVar21 + uVar3 * 4);
            (**(code **)(iVar28 + -0x7bec))(puVar21,puVar20,uVar3,puVar17);
            iVar9 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar9 != 0) {
              (**(code **)(iVar28 + -0x7bec))(piVar16,piVar11,iVar25,puVar17);
              *(byte **)(pbVar29 + iVar8 + -0x1d8) = pbVar22;
              uVar3 = FUN_00036404(puVar21,piVar16,piVar16 + iVar10,
                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);
              iVar10 = *(int *)(pbVar29 + -0x1d0);
              goto LAB_00038784;
            }
          }
          else {
            iVar8 = (**(code **)(iVar28 + -0x7c9c))();
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar8 == 0) goto LAB_00038914;
            pcVar32 = *(code **)(iVar28 + -0x7bec);
            *(int *)(pbVar29 + -0x1c4) = iVar8;
            piVar16 = (int *)(iVar8 + uVar3 * 4);
            (*pcVar32)(iVar8,puVar20,uVar3,puVar17);
            iVar8 = (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c30))(puVar17);
            iVar28 = *(int *)(pbVar29 + -0x1d0);
            if (iVar8 != 0) {
              pcVar32 = *(code **)(iVar28 + -0x7bec);
              *(undefined4 *)(pbVar29 + -0x1c4) = *(undefined4 *)(pbVar29 + -0x1c4);
              (*pcVar32)(piVar16,piVar11,iVar25,puVar17);
              *(byte **)(pbVar29 + -0x1d8) = pbVar22;
              uVar3 = FUN_00036404(*(undefined4 *)(pbVar29 + -0x1c4),piVar16,piVar16 + iVar10,
                                   (uint)((int)pbVar22 << 0x1d) >> 0x1f);
              (**(code **)(*(int *)(pbVar29 + -0x1d0) + -0x7c20))(*(undefined4 *)(pbVar29 + -0x1c4))
              ;
              iVar10 = *(int *)(pbVar29 + -0x1d0);
              goto LAB_00038784;
            }
          }
          uVar15 = 0x147;
LAB_000389f4:
          uVar3 = (**(code **)(iVar28 + -0x7db0))
                            (*(int *)(iVar28 + -0x7fc8) + 0x4f48,*(int *)(iVar28 + -0x7fc8) + 0x4f3c
                             ,uVar15,*(int *)(iVar28 + -0x7fc8) + 0x5258);
          return uVar3;
        }
LAB_00038914:
        uVar3 = 0xffffffff;
        puVar5 = (undefined4 *)(**(code **)(iVar28 + -0x7cf8))();
        iVar10 = *(int *)(pbVar29 + -0x1d0);
        *puVar5 = 0xc;
        goto LAB_00038784;
      }
    }
  }
  piVar16 = *(int **)(pbVar29 + -0x1c0);
  iVar10 = (**(code **)(iVar28 + -0x7cbc))(piVar16);
  *(byte **)(pbVar29 + -0x1d8) = pbVar22;
  uVar3 = FUN_000378d8(*(undefined4 *)(pbVar29 + -0x1bc),piVar16,(int)piVar16 + iVar10,
                       (uint)((int)pbVar22 << 0x1d) >> 0x1f);
  iVar10 = *(int *)(pbVar29 + -0x1d0);
LAB_00038784:
  piVar11 = *(int **)(pbVar29 + -0x1ac);
  if (piVar11 == (int *)*piVar6) {
    return uVar3;
  }
  (**(code **)(iVar10 + -0x7c4c))();
  if ((piVar11[2] == piVar16[2]) && (piVar11[3] == piVar16[3])) {
    return (uint)(*piVar11 == *piVar16 && piVar11[1] == piVar16[1]);
  }
  return 0;
}

