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

{
  byte bVar1;
  int iVar2;
  int iVar3;
  undefined1 *puVar4;
  byte *pbVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  undefined4 *puVar9;
  undefined4 uVar10;
  FILE *fp;
  byte *pbVar11;
  wchar_t *string_end_00;
  byte *unaff_s0;
  wchar_t *string_00;
  patternlist *unaff_s1;
  patternlist *ppVar12;
  byte *unaff_s2;
  byte *pbVar13;
  byte *pbVar14;
  int iVar15;
  int unaff_s4;
  uint uVar16;
  patternlist *unaff_s5;
  wchar_t *pwVar17;
  uint unaff_s7;
  int in_t9;
  code *pcVar18;
  code *pcVar19;
  undefined1 *puVar20;
  uint uVar21;
  code *pcVar22;
  undefined1 auStack_68 [24];
  int local_50;
  byte *local_48;
  int local_44;
  char *local_40;
  uint local_3c;
  char *local_38;
  patternlist *local_34;
  patternlist *list;
  byte *local_2c;
  
  local_50 = in_t9 + 0x4b800;
  puVar20 = auStack_68;
  local_3c = (uint)no_leading_period;
  local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038);
  list = (patternlist *)0x0;
  pbVar11 = (byte *)pattern;
  local_40 = string_end;
  local_38 = string;
  local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern);
  iVar3 = (int)pattern[1];
  iVar8 = local_50;
  if (iVar3 != 0) {
    unaff_s2 = (byte *)(pattern + 1);
    unaff_s1 = (patternlist *)0x0;
    unaff_s4 = *(int *)(local_50 + -0x7d10);
    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;
    unaff_s7 = (uint)(opt - 0x3fU < 2);
    pbVar13 = unaff_s2;
    puVar20 = auStack_68;
    local_34 = (patternlist *)&list;
LAB_000742a0:
    do {
      if (iVar3 == 0x5b) {
        if (*(int *)(unaff_s4 + -0x2c00) == 0) {
          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);
          uVar10 = 0xffffffff;
          if (iVar8 != 0) {
            uVar10 = 1;
          }
          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;
          iVar8 = local_50;
        }
        if ((pbVar13[1] == 0x21) ||
           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {
          pbVar5 = pbVar13 + 2;
        }
        pbVar13 = pbVar5;
        if (*pbVar13 == 0x5d) {
          pbVar13 = pbVar13 + 1;
        }
        while( true ) {
          bVar1 = *pbVar13;
          unaff_s0 = pbVar13 + 1;
          if (bVar1 == 0x5d) break;
          pbVar13 = pbVar13 + 1;
          if (bVar1 == 0) goto LAB_00073d48;
        }
      }
      else {
        ppVar12 = unaff_s1;
        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {
          if (pbVar13[1] == 0x28) {
            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);
            iVar3 = (int)(char)pbVar13[1];
            pbVar13 = pbVar13 + 1;
            goto LAB_000742a0;
          }
        }
        else {
          unaff_s0 = pbVar13;
          if (iVar3 == 0x29) {
            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);
            if (unaff_s1 == (patternlist *)0x0) {
              if (1 < opt - 0x3fU) {
                local_48 = pbVar13 + (1 - (int)unaff_s2);
              }
              string = (char *)(pbVar13 + -(int)unaff_s2);
              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);
                pbVar11 = unaff_s2;
                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);
                iVar8 = local_50;
                *puVar4 = 0;
                unaff_s1->next = (patternlist *)0x0;
                local_34->next = unaff_s1;
                opt = opt - 0x21;
                puVar20 = puVar20 + iVar3;
                if ((uint)opt < 0x20) {
                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)
                          )();
                  return iVar8;
                }
              }
              break;
            }
          }
          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {
            pbVar5 = local_48;
            if (unaff_s7 == 0) {
              pbVar5 = pbVar13 + (1 - (int)unaff_s2);
            }
            string = (char *)(pbVar13 + -(int)unaff_s2);
            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;
            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);
            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);
            iVar8 = local_50;
            *puVar4 = 0;
            unaff_s5->next = (patternlist *)0x0;
            local_34->next = unaff_s5;
            pbVar11 = unaff_s2;
            unaff_s2 = pbVar13 + 1;
            puVar20 = puVar20 + iVar3;
            local_34 = unaff_s5;
          }
        }
        unaff_s0 = pbVar13 + 1;
        unaff_s1 = ppVar12;
      }
      iVar3 = (int)(char)pbVar13[1];
      pbVar13 = unaff_s0;
    } while (iVar3 != 0);
  }
LAB_00073d48:
  if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {
    return -1;
  }
  pcVar18 = *(code **)(iVar8 + -0x7834);
  pcVar22 = internal_fnmatch;
  pbVar13 = local_2c;
  (*pcVar18)();
  pcVar19 = pcVar18 + 0x4b134;
  *(code **)(puVar20 + -4) = pcVar22;
  *(undefined1 **)(puVar20 + -8) = auStack_68;
  *(uint *)(puVar20 + -0xc) = unaff_s7;
  *(int *)(puVar20 + -0x10) = opt;
  *(patternlist **)(puVar20 + -0x14) = unaff_s5;
  *(int *)(puVar20 + -0x18) = unaff_s4;
  *(char **)(puVar20 + -0x1c) = pattern;
  *(byte **)(puVar20 + -0x20) = unaff_s2;
  *(patternlist **)(puVar20 + -0x24) = unaff_s1;
  *(byte **)(puVar20 + -0x28) = unaff_s0;
  *(code **)(puVar20 + -0x158) = pcVar19;
  *(char **)(puVar20 + 0xc) = string_end;
  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c);
  *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;
  uVar16 = (uint)*pbVar13;
  pbVar5 = (byte *)string;
  pbVar14 = pbVar11;
  if (uVar16 != 0) {
    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);
    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;
    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;
    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);
    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;
    do {
      if (unaff_s5 != (patternlist *)0x0) {
        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();
        pcVar19 = *(code **)(puVar20 + -0x158);
        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);
      }
      if ((uVar16 - 0x21 & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();
        return iVar8;
      }
      uVar21 = 1;
      if ((byte *)string == pbVar14) goto LAB_00074dd8;
      if (unaff_s5 == (patternlist *)0x0) {
        uVar6 = (uint)*pbVar14;
      }
      else {
        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();
        pcVar19 = *(code **)(puVar20 + -0x158);
        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);
      }
      uVar21 = 1;
      if (uVar6 != uVar16) goto LAB_00074dd8;
      pbVar13 = *(byte **)(puVar20 + -0x14c);
      *(undefined4 *)(puVar20 + 0xc) = 0;
      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;
      uVar16 = (uint)*pbVar13;
      pbVar14 = pbVar14 + 1;
    } while (uVar16 != 0);
  }
  if ((byte *)string == pbVar14) {
    uVar21 = 0;
  }
  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {
    uVar21 = 1;
  }
  else {
    uVar21 = (uint)(*pbVar14 != 0x2f);
  }
LAB_00074dd8:
  iVar8 = *(int *)(puVar20 + -0x2c);
  if (iVar8 == **(int **)(pcVar19 + -0x77c8)) {
    return uVar21;
  }
  pcVar18 = *(code **)(pcVar19 + -0x7834);
  pcVar19 = rpl_fnmatch;
  (*pcVar18)();
  puVar4 = puVar20 + -0x1d0;
  *(code **)(puVar20 + -0x174) = pcVar19;
  *(uint *)(puVar20 + -0x178) = uVar21;
  *(int *)(puVar20 + -0x17c) = opt;
  *(patternlist **)(puVar20 + -0x180) = unaff_s5;
  *(uint *)(puVar20 + -0x184) = uVar16;
  *(byte **)(puVar20 + -0x188) = pbVar14;
  *(byte **)(puVar20 + -0x18c) = pbVar13;
  *(patternlist **)(puVar20 + -400) = unaff_s1;
  *(byte **)(puVar20 + -0x194) = unaff_s0;
  *(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438;
  *(int *)(puVar20 + -0x1ac) = iVar8;
  *(byte **)(puVar20 + -0x1b0) = pbVar11;
  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70);
  iVar8 = (**(code **)(pcVar18 + 0x42e44))();
  iVar3 = *(int *)(puVar20 + -0x1b8);
  if (iVar8 != 1) {
    *(undefined4 *)(puVar20 + -0x1a4) = 0;
    *(undefined4 *)(puVar20 + -0x1a0) = 0;
    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);
    iVar3 = *(int *)(puVar20 + -0x1b8);
    uVar16 = iVar8 + 1;
    if (uVar16 != 0) {
      string_end_00 = (wchar_t *)0x0;
      string_00 = (wchar_t *)(puVar20 + -0x1b0);
      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);
      iVar3 = *(int *)(puVar20 + -0x1b8);
      iVar15 = iVar8 + 1;
      if (iVar15 != 0) {
        uVar21 = uVar16 + iVar15;
        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {
          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();
          iVar3 = *(int *)(puVar20 + -0x1b8);
          *puVar9 = 0xc;
          iVar8 = -1;
        }
        else if (uVar21 < 2000) {
          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);
          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);
          string_00 = pwVar17 + uVar16;
          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);
          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);
          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;
          string_end_00 = string_00 + iVar8;
          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,
                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),
                                    *(int *)(puVar20 + iVar2 + -0x1c0));
          iVar3 = *(int *)(puVar20 + -0x1b8);
          puVar4 = puVar20 + iVar2 + -0x1d0;
        }
        else {
          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);
          if (pwVar17 == (wchar_t *)0x0) {
            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();
            iVar3 = *(int *)(puVar20 + -0x1b8);
            *puVar9 = 0xc;
            iVar8 = -1;
            puVar4 = puVar20 + -0x1d0;
          }
          else {
            string_00 = pwVar17 + uVar16;
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);
            *(byte **)(puVar20 + -0x1c0) = pbVar5;
            string_end_00 = string_00 + iVar8;
            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,
                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),
                                      *(int *)(puVar20 + -0x1c0));
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);
            iVar3 = *(int *)(puVar20 + -0x1b8);
            puVar4 = puVar20 + -0x1d0;
          }
        }
        goto LAB_000750b0;
      }
    }
  }
  string_00 = *(wchar_t **)(puVar20 + -0x1b0);
  iVar8 = (**(code **)(iVar3 + -0x779c))(string_00);
  *(byte **)(puVar20 + -0x1c0) = pbVar5;
  string_end_00 = (wchar_t *)((int)string_00 + iVar8);
  iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,
                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0));
  iVar3 = *(int *)(puVar20 + -0x1b8);
  puVar4 = puVar20 + -0x1d0;
LAB_000750b0:
  fp = *(FILE **)(puVar20 + -0x19c);
  if (fp != (FILE *)**(int **)(iVar3 + -0x77c8)) {
    pcVar18 = *(code **)(iVar3 + -0x7834);
    pcVar19 = rpl_fseek;
    (*pcVar18)();
    *(code **)(puVar4 + -4) = pcVar19;
    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;
    *(wchar_t **)(puVar4 + -0x18) = string_end_00;
    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);
    return iVar8;
  }
  return iVar8;
}



uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)

{
  byte bVar1;
  int iVar2;
  byte *pbVar3;
  uint uVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined *puVar7;
  undefined4 uVar8;
  byte *pbVar9;
  undefined1 *puVar10;
  byte *unaff_s0;
  int iVar11;
  undefined4 *unaff_s1;
  byte *unaff_s2;
  byte *pbVar12;
  byte *pbVar13;
  undefined *unaff_s4;
  uint uVar14;
  undefined1 *puVar15;
  undefined4 *unaff_s5;
  undefined1 *puVar16;
  int iVar17;
  uint unaff_s7;
  undefined *puVar18;
  int iVar19;
  undefined1 *puVar20;
  uint uVar21;
  code *pcVar22;
  code *pcVar23;
  undefined1 auStack_68 [24];
  byte *local_48;
  undefined4 *local_34;
  undefined4 local_30;
  byte *local_2c;
  
  puVar20 = auStack_68;
  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;
  local_30 = 0;
  pbVar9 = param_2;
  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);
  puVar18 = PTR_DAT_000b7720;
  iVar2 = (int)(char)param_2[1];
  local_34 = &local_30;
  if (iVar2 != 0) {
    unaff_s2 = param_2 + 1;
    unaff_s1 = (undefined4 *)0x0;
    puVar7 = PTR_DAT_000b758c + 0x1ad0;
    unaff_s7 = (uint)(param_1 - 0x3f < 2);
    pbVar12 = unaff_s2;
    puVar20 = auStack_68;
LAB_000742a0:
    do {
      unaff_s4 = puVar18;
      if (iVar2 == 0x5b) {
        if (*(int *)(puVar18 + -0x2c00) == 0) {
          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);
          uVar8 = 0xffffffff;
          if (iVar2 != 0) {
            uVar8 = 1;
          }
          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;
        }
        if ((pbVar12[1] == 0x21) ||
           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {
          pbVar3 = pbVar12 + 2;
        }
        pbVar12 = pbVar3;
        if (*pbVar12 == 0x5d) {
          pbVar12 = pbVar12 + 1;
        }
        while( true ) {
          bVar1 = *pbVar12;
          unaff_s0 = pbVar12 + 1;
          if (bVar1 == 0x5d) break;
          pbVar12 = pbVar12 + 1;
          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;
        }
      }
      else {
        puVar6 = unaff_s1;
        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {
          if (pbVar12[1] == 0x28) {
            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);
            iVar2 = (int)(char)pbVar12[1];
            pbVar12 = pbVar12 + 1;
            goto LAB_000742a0;
          }
        }
        else {
          unaff_s0 = pbVar12;
          if (iVar2 == 0x29) {
            puVar6 = (undefined4 *)((int)unaff_s1 + -1);
            if (unaff_s1 == (undefined4 *)0x0) {
              if (1 < param_1 - 0x3f) {
                local_48 = pbVar12 + (1 - (int)unaff_s2);
              }
              param_3 = pbVar12 + -(int)unaff_s2;
              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);
                pbVar9 = unaff_s2;
                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);
                *puVar15 = 0;
                *unaff_s1 = 0;
                *local_34 = unaff_s1;
                param_1 = param_1 - 0x21;
                puVar20 = puVar20 + iVar2;
                if (param_1 < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00073e70 */
                    /* WARNING: Treating indirect jump as call */
                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()
                  ;
                  return uVar14;
                }
              }
              break;
            }
          }
          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {
            pbVar3 = local_48;
            if (unaff_s7 == 0) {
              pbVar3 = pbVar12 + (1 - (int)unaff_s2);
            }
            param_3 = pbVar12 + -(int)unaff_s2;
            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;
            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);
            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);
            *puVar15 = 0;
            *unaff_s5 = 0;
            *local_34 = unaff_s5;
            pbVar9 = unaff_s2;
            unaff_s2 = pbVar12 + 1;
            puVar20 = puVar20 + iVar2;
            local_34 = unaff_s5;
          }
        }
        unaff_s0 = pbVar12 + 1;
        unaff_s1 = puVar6;
      }
      iVar2 = (int)(char)pbVar12[1];
      pbVar12 = unaff_s0;
    } while (iVar2 != 0);
  }
switchD_00073e7c_caseD_20:
  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {
    return 0xffffffff;
  }
  pcVar22 = FUN_000742fc;
  pbVar12 = local_2c;
  puVar18 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  puVar7 = puVar18 + 0x4b134;
  *(code **)(puVar20 + -4) = pcVar22;
  *(undefined1 **)(puVar20 + -8) = auStack_68;
  *(uint *)(puVar20 + -0xc) = unaff_s7;
  *(uint *)(puVar20 + -0x10) = param_1;
  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;
  *(undefined **)(puVar20 + -0x18) = unaff_s4;
  *(byte **)(puVar20 + -0x1c) = param_2;
  *(byte **)(puVar20 + -0x20) = unaff_s2;
  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;
  *(byte **)(puVar20 + -0x28) = unaff_s0;
  *(undefined **)(puVar20 + -0x158) = puVar7;
  *(undefined4 *)(puVar20 + 0xc) = param_4;
  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);
  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;
  uVar14 = (uint)*pbVar12;
  pbVar3 = param_3;
  pbVar13 = pbVar9;
  if (uVar14 != 0) {
    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);
    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;
    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;
    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);
    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;
    do {
      if (unaff_s5 != (undefined4 *)0x0) {
        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();
        puVar7 = *(undefined **)(puVar20 + -0x158);
        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);
      }
      if ((uVar14 - 0x21 & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +
                                             (uVar14 - 0x21 & 0xff) * 4)))();
        return uVar14;
      }
      uVar21 = 1;
      if (param_3 == pbVar13) goto LAB_00074dd8;
      if (unaff_s5 == (undefined4 *)0x0) {
        uVar4 = (uint)*pbVar13;
      }
      else {
        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();
        puVar7 = *(undefined **)(puVar20 + -0x158);
        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);
      }
      uVar21 = 1;
      if (uVar4 != uVar14) goto LAB_00074dd8;
      pbVar12 = *(byte **)(puVar20 + -0x14c);
      *(undefined4 *)(puVar20 + 0xc) = 0;
      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;
      uVar14 = (uint)*pbVar12;
      pbVar13 = pbVar13 + 1;
    } while (uVar14 != 0);
  }
  if (param_3 == pbVar13) {
    uVar21 = 0;
  }
  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {
    uVar21 = 1;
  }
  else {
    uVar21 = (uint)(*pbVar13 != 0x2f);
  }
LAB_00074dd8:
  iVar2 = *(int *)(puVar20 + -0x2c);
  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {
    return uVar21;
  }
  pcVar22 = *(code **)(puVar7 + -0x7834);
  pcVar23 = rpl_fnmatch;
  (*pcVar22)();
  puVar15 = puVar20 + -0x1d0;
  *(code **)(puVar20 + -0x174) = pcVar23;
  *(uint *)(puVar20 + -0x178) = uVar21;
  *(uint *)(puVar20 + -0x17c) = param_1;
  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;
  *(uint *)(puVar20 + -0x184) = uVar14;
  *(byte **)(puVar20 + -0x188) = pbVar13;
  *(byte **)(puVar20 + -0x18c) = pbVar12;
  *(undefined4 **)(puVar20 + -400) = unaff_s1;
  *(byte **)(puVar20 + -0x194) = unaff_s0;
  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;
  *(int *)(puVar20 + -0x1ac) = iVar2;
  *(byte **)(puVar20 + -0x1b0) = pbVar9;
  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);
  iVar2 = (**(code **)(pcVar22 + 0x42e44))();
  iVar19 = *(int *)(puVar20 + -0x1b8);
  if (iVar2 != 1) {
    *(undefined4 *)(puVar20 + -0x1a4) = 0;
    *(undefined4 *)(puVar20 + -0x1a0) = 0;
    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);
    iVar19 = *(int *)(puVar20 + -0x1b8);
    uVar14 = iVar2 + 1;
    if (uVar14 != 0) {
      puVar10 = (undefined1 *)0x0;
      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);
      iVar19 = *(int *)(puVar20 + -0x1b8);
      iVar11 = iVar2 + 1;
      if (iVar11 != 0) {
        uVar21 = uVar14 + iVar11;
        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {
          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();
          iVar2 = *(int *)(puVar20 + -0x1b8);
          *puVar6 = 0xc;
          uVar14 = 0xffffffff;
        }
        else if (uVar21 < 2000) {
          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);
          puVar16 = puVar20 + iVar17 + -0x1b8;
          puVar15 = puVar16 + uVar14 * 4;
          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);
          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);
          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;
          puVar10 = puVar15 + iVar2 * 4;
          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);
          iVar2 = *(int *)(puVar20 + -0x1b8);
          puVar15 = puVar20 + iVar17 + -0x1d0;
        }
        else {
          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);
          if (iVar19 == 0) {
            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();
            iVar2 = *(int *)(puVar20 + -0x1b8);
            *puVar6 = 0xc;
            uVar14 = 0xffffffff;
            puVar15 = puVar20 + -0x1d0;
          }
          else {
            iVar17 = iVar19 + uVar14 * 4;
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);
            *(byte **)(puVar20 + -0x1c0) = pbVar3;
            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);
            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);
            iVar2 = *(int *)(puVar20 + -0x1b8);
            puVar15 = puVar20 + -0x1d0;
          }
        }
        goto LAB_000750b0;
      }
    }
  }
  iVar11 = *(int *)(puVar20 + -0x1b0);
  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);
  *(byte **)(puVar20 + -0x1c0) = pbVar3;
  puVar10 = (undefined1 *)(iVar11 + iVar2);
  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,
                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);
  iVar2 = *(int *)(puVar20 + -0x1b8);
  puVar15 = puVar20 + -0x1d0;
LAB_000750b0:
  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {
    pcVar22 = *(code **)(iVar2 + -0x7834);
    pcVar23 = rpl_fseek;
    (*pcVar22)();
    *(code **)(puVar15 + -4) = pcVar23;
    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;
    *(undefined1 **)(puVar15 + -0x18) = puVar10;
    uVar14 = rpl_fseeko();
    return uVar14;
  }
  return uVar14;
}


lui gp,0x5
addiu gp,gp,-0x4800
addu gp,gp,t9
addiu sp,sp,-0x68
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
or s8,sp,zero
sw gp,0x18(sp)
or s6,a0,zero
or s3,a1,zero
sw a2,0x30(s8)
sw a3,0x28(s8)
lbu v0,0x7b(s8)
sw v0,0x2c(s8)
lw v0,-0x77c8(gp)
lw v0,0x0(v0)
sw v0,0x3c(s8)
sw zero,0x38(s8)
or a0,a1,zero
lw t9,-0x779c(gp)
jalr t9
_nop
lw gp,0x18(s8)
sw v0,0x20(s8)
lb v0,0x1(s3)
beq v0,zero,0x00074238
_addiu v1,s8,0x38
addiu s2,s3,0x1
or s0,s2,zero
sw v1,0x34(s8)
or s1,zero,zero
lw s4,-0x7d10(gp)
lw v1,-0x7ea4(gp)
addiu v1,v1,0x1ad0
sw v1,0x24(s8)
addiu v1,s6,-0x3f
b 0x000742a0
_sltiu s7,v1,0x2
lw v0,-0x2c00(s4)
beq v0,zero,0x00073d8c
_lw a0,0x24(s8)
lb v1,0x1(s0)
li a0,0x21
beq v1,a0,0x00073d18
_addiu v0,s0,0x1
lw a0,-0x2c00(s4)
bgez a0,0x00073d1c
_li a0,0x5e
bne v1,a0,0x00073d1c
_nop
addiu v0,s0,0x2
lb a0,0x0(v0)
li v1,0x5d
beq a0,v1,0x00073db0
_nop
li a0,0x5d
lb v1,0x0(v0)
beq v1,a0,0x00074294
_addiu s0,v0,0x1
bne v1,zero,0x00073d30
_addiu v0,v0,0x1
li v0,-0x1
lw a0,0x3c(s8)
lw v1,-0x77c8(gp)
lw v1,0x0(v1)
bne a0,v1,0x000742f0
_lw ra,0x64(s8)
or sp,s8,zero
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw t9,-0x7644(gp)
jalr t9
_nop
lw gp,0x18(s8)
li v1,0x1
li a0,-0x1
movn a0,v1,v0
b 0x00073cf4
_sw a0,-0x2c00(s4)
b 0x00073d2c
_addiu v0,v0,0x1
li v1,0x29
bne v0,v1,0x00073edc
_nop
beq s1,zero,0x00073dd8
_addiu v1,s1,-0x1
or v0,s0,zero
b 0x00074290
_or s1,v1,zero
addiu v0,s6,-0x3f
sltiu v0,v0,0x2
bne v0,zero,0x00073df0
_subu v0,s0,s2
addiu v0,v0,0x1
sw v0,0x20(s8)
lw v0,0x20(s8)
addiu v0,v0,0x7
li v1,-0x4
and v0,v0,v1
addiu v1,v0,-0x4
sltiu v1,v1,0x1f3c
bne v1,zero,0x00073e18
_subu a2,s0,s2
b 0x00073d48
_li v0,-0x1
addiu v0,v0,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s1,sp,0x18
or a1,s2,zero
addiu a0,s1,0x4
lw t9,-0x77a8(gp)
jalr t9
_nop
lw gp,0x18(s8)
sb zero,0x0(v0)
sw zero,0x0(s1)
lw v0,0x34(s8)
sw s1,0x0(v0)
addiu s6,s6,-0x21
sltiu v0,s6,0x20
beq v0,zero,0x00073d48
_li v0,-0x1
sll s6,s6,0x2
lw v0,-0x7ea4(gp)
addiu v0,v0,0x1c50
addu s6,v0,s6
lw v0,0x0(s6)
addu v0,v0,gp
jr v0
_nop
lw v0,0x30(s8)
lw v1,0x28(s8)
sltu v0,v1,v0
bne v0,zero,0x00073ed4
_lw v1,0x7c(s8)
lw v0,0x7c(s8)
andi s4,v0,0x1
li v0,-0x5
and v0,v1,v0
movz v1,v0,s4
or s4,v1,zero
or s6,v1,zero
lw s2,0x30(s8)
lw s3,-0x7a18(gp)
addiu s3,s3,0x42fc
lw v0,0x7c(s8)
andi s5,v0,0x5
xori s5,s5,0x5
b 0x000741a4
_sltiu s5,s5,0x1
b 0x00073d48
_li v0,0x1
li v1,0x7c
bne v0,v1,0x00073f68
_nop
bne s1,zero,0x00074290
_or v0,s0,zero
bne s7,zero,0x00073f00
_lw v0,0x20(s8)
subu v0,s0,s2
addiu v0,v0,0x1
addiu v0,v0,0x7
li v1,-0x4
and v0,v0,v1
addiu v1,v0,-0x4
sltiu v1,v1,0x1f3c
beq v1,zero,0x00074248
_subu a2,s0,s2
addiu v0,v0,0x7
srl v0,v0,0x3
sll v0,v0,0x3
subu sp,sp,v0
addiu s5,sp,0x18
or a1,s2,zero
addiu a0,sp,0x1c
lw t9,-0x77a8(gp)
jalr t9
_nop
lw gp,0x18(s8)
sb zero,0x0(v0)
sw zero,0x0(s5)
lw v0,0x34(s8)
sw s5,0x0(v0)
sw s5,0x34(s8)
addiu s2,s0,0x1
b 0x00074290
_or v0,s0,zero
b 0x00074290
_or v0,s0,zero
lw v0,0x7c(s8)
sw v0,0x10(sp)
lw a3,0x2c(s8)
lw a2,0x28(s8)
lw a1,0x30(s8)
or a0,s0,zero
lw t9,-0x7a18(gp)
addiu t9,t9,0x42fc
bal 0x000742fc
_nop
lw gp,0x18(s8)
beq v0,zero,0x00073d48
_nop
li v0,-0x5
lw v1,0x7c(s8)
and v0,v1,v0
andi s4,v1,0x1
movz v1,v0,s4
or s4,v1,zero
lw s5,-0x7a18(gp)
addiu s5,s5,0x42fc
lw v0,0x7c(s8)
andi v0,v0,0x5
xori v0,v0,0x5
b 0x000740b0
_sw v0,0x34(s8)
or a3,s6,zero
sw s4,0x10(sp)
andi a3,a3,0x1
lw a2,0x28(s8)
or a1,s1,zero
or a0,s0,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x00073d48
_or a1,s1,zero
lb v0,-0x1(s1)
xori v0,v0,0x2f
movz s2,s6,v0
sw s4,0x10(sp)
andi a3,s2,0x1
lw a2,0x28(s8)
or a0,s7,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x00073d48
_nop
addiu s1,s1,0x1
lw v0,0x28(s8)
sltu v0,v0,s1
bne v0,zero,0x000740a4
_lw v0,0x38(s8)
sw s4,0x10(sp)
lw a3,0x2c(s8)
or a2,s1,zero
lw a1,0x30(s8)
lw a0,0x38(s8)
addiu a0,a0,0x4
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(s8)
bne v0,zero,0x0007403c
_or s2,v0,zero
lw v0,0x30(s8)
beq v0,s1,0x00074258
_li v0,0x2f
lb v1,-0x1(s1)
beq v1,v0,0x00073fd8
_or a3,s2,zero
b 0x00073fe0
_sw s4,0x10(sp)
lw v0,0x38(s8)
lw v0,0x0(v0)
beq v0,zero,0x000740d0
_sw v0,0x38(s8)
lw s1,0x30(s8)
lw v0,0x28(s8)
sltu v0,v0,s1
bne v0,zero,0x000740a0
_addiu s7,s3,-0x1
lw v0,0x34(s8)
b 0x00074050
_sltiu s6,v0,0x1
b 0x00073d48
_li v0,0x1
lw v0,0x7c(s8)
sw v0,0x10(sp)
lw a3,0x2c(s8)
lw a2,0x28(s8)
lw a1,0x30(s8)
or a0,s0,zero
lw t9,-0x7a18(gp)
addiu t9,t9,0x42fc
bal 0x000742fc
_nop
lw gp,0x18(s8)
beq v0,zero,0x00073d48
_nop
li v0,-0x5
lw v1,0x7c(s8)
and v0,v1,v0
andi s2,v1,0x1
movz v1,v0,s2
or s2,v1,zero
lw s1,-0x7a18(gp)
addiu s1,s1,0x42fc
lw s3,0x38(s8)
or a1,s0,zero
addiu a0,s3,0x4
lw t9,-0x788c(gp)
jalr t9
_nop
lw gp,0x18(s8)
sw s2,0x10(sp)
lw a3,0x2c(s8)
lw a2,0x28(s8)
lw a1,0x30(s8)
or a0,v0,zero
or t9,s1,zero
bal 0x000742fc
_nop
lw gp,0x18(s8)
beq v0,zero,0x00073d48
_nop
lw v0,0x0(s3)
bne v0,zero,0x0007412c
_sw v0,0x38(s8)
b 0x00073d48
_li v0,0x1
beq s1,zero,0x000741e8
_lw v0,0x30(s8)
addiu s2,s2,0x1
lw v0,0x28(s8)
sltu v0,v0,s2
bne v0,zero,0x00073d48
_li v0,0x1
lw s1,0x38(s8)
beq s1,zero,0x000741e8
_lw v0,0x30(s8)
sw s4,0x10(sp)
lw a3,0x2c(s8)
or a2,s2,zero
lw a1,0x30(s8)
addiu a0,s1,0x4
or t9,s3,zero
jalr t9
_nop
lw gp,0x18(s8)
beq v0,zero,0x00074188
_nop
lw s1,0x0(s1)
bne s1,zero,0x000741b0
_lw v0,0x30(s8)
beq v0,s2,0x00074230
_or v0,s5,zero
lb a3,-0x1(s2)
xori a3,a3,0x2f
movn v0,zero,a3
or a3,v0,zero
sw s6,0x10(sp)
lw a2,0x28(s8)
or a1,s2,zero
or a0,s0,zero
or t9,s3,zero
jalr t9
_nop
lw gp,0x18(s8)
bne v0,zero,0x00074194
_addiu s2,s2,0x1
b 0x00073d48
_addiu s2,s2,-0x1
b 0x00074200
_lw a3,0x2c(s8)
b 0x00073d48
_li v0,-0x1
b 0x00073d48
_li v0,-0x1
b 0x00073d48
_li v0,-0x1
b 0x00073d48
_li v0,-0x1
sw s4,0x10(sp)
lw a3,0x2c(s8)
lw a2,0x28(s8)
or a1,s1,zero
or a0,s0,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(s8)
bne v0,zero,0x00074040
_addiu s1,s1,0x1
b 0x00073d48
_addiu s1,s1,-0x1
or v0,s0,zero
addiu s0,v0,0x1
lb v0,0x1(v0)
beq v0,zero,0x00074250
_nop
li v1,0x5b
beq v0,v1,0x00073ce8
_addiu v1,v0,-0x21
andi v1,v1,0xff
sltiu a0,v1,0x20
beq a0,zero,0x00073db8
_lui a0,0xc000
addiu a0,a0,0x601
srlv v1,a0,v1
andi v1,v1,0x1
beq v1,zero,0x00073dbc
_li v1,0x29
lb v1,0x1(s0)
li v0,0x28
bne v1,v0,0x0007428c
_nop
addiu s1,s1,0x1
lb v0,0x1(s0)
b 0x000742a0
_addiu s0,s0,0x1
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}\n\n" (function_definition "uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" type_identifier (function_declarator "FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" identifier (parameter_list "(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" ( (parameter_declaration "uint param_1" type_identifier 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 "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" * (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b7c94)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar18 = PTR_DAT_000b7720;" (assignment_expression "puVar18 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "iVar2 = (int)(char)param_2[1];" (assignment_expression "iVar2 = (int)(char)param_2[1]" identifier = (cast_expression "(int)(char)param_2[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (if_statement "if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" { (expression_statement "unaff_s2 = param_2 + 1;" (assignment_expression "unaff_s2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = (undefined4 *)0x0;" (assignment_expression "unaff_s1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = PTR_DAT_000b758c + 0x1ad0;" (assignment_expression "puVar7 = PTR_DAT_000b758c + 0x1ad0" identifier = (binary_expression "PTR_DAT_000b758c + 0x1ad0" identifier + number_literal)) ;) (expression_statement "unaff_s7 = (uint)(param_1 - 0x3f < 2);" (assignment_expression "unaff_s7 = (uint)(param_1 - 0x3f < 2)" identifier = (call_expression "(uint)(param_1 - 0x3f < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 - 0x3f < 2)" ( (binary_expression "param_1 - 0x3f < 2" (binary_expression "param_1 - 0x3f" identifier - number_literal) < number_literal) )))) ;) (expression_statement "pbVar12 = unaff_s2;" (assignment_expression "pbVar12 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" statement_identifier : (do_statement "do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" do (compound_statement "{\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    }" { (expression_statement "unaff_s4 = puVar18;" (assignment_expression "unaff_s4 = puVar18" identifier = identifier) ;) (if_statement "if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" if (parenthesized_expression "(iVar2 == 0x5b)" ( (binary_expression "iVar2 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }" { (if_statement "if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" if (parenthesized_expression "(*(int *)(puVar18 + -0x2c00) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x2c00) == 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" * (cast_expression "(int *)(puVar18 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" { (expression_statement "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7)" identifier = (call_expression "(*(code *)PTR_getenv_000b7dec)(puVar7)" (parenthesized_expression "(*(code *)PTR_getenv_000b7dec)" ( (pointer_expression "*(code *)PTR_getenv_000b7dec" * (cast_expression "(code *)PTR_getenv_000b7dec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7)" ( identifier )))) ;) (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n            uVar8 = 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar8 = 1;\n          }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar18 + -0x2c00) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c00) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c00)" * (cast_expression "(undefined4 *)(puVar18 + -0x2c00)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }" if (parenthesized_expression "((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))))" ( (binary_expression "(pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" (parenthesized_expression "(pbVar12[1] == 0x21)" ( (binary_expression "pbVar12[1] == 0x21" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" ( (parenthesized_expression "(pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))" ( (comma_expression "pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (assignment_expression "pbVar3 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) , (binary_expression "*(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (binary_expression "*(int *)(puVar18 + -0x2c00) < 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" * (cast_expression "(int *)(puVar18 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(pbVar12[1] == 0x5e)" ( (binary_expression "pbVar12[1] == 0x5e" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n          pbVar3 = pbVar12 + 2;\n        }" { (expression_statement "pbVar3 = pbVar12 + 2;" (assignment_expression "pbVar3 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar12 = pbVar3;" (assignment_expression "pbVar12 = pbVar3" identifier = identifier) ;) (if_statement "if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }" if (parenthesized_expression "(*pbVar12 == 0x5d)" ( (binary_expression "*pbVar12 == 0x5d" (pointer_expression "*pbVar12" * identifier) == number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) })) (while_statement "while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" { (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0x5d) break;" if (parenthesized_expression "(bVar1 == 0x5d)" ( (binary_expression "bVar1 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0) goto switchD_00073e7c_caseD_20;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto switchD_00073e7c_caseD_20;" goto statement_identifier ;)) })) }) (else_clause "else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" else (compound_statement "{\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" { (expression_statement "puVar6 = unaff_s1;" (assignment_expression "puVar6 = unaff_s1" identifier = identifier) ;) (if_statement "if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" if (parenthesized_expression "(((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0))" ( (binary_expression "((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" (parenthesized_expression "((iVar2 - 0x21U & 0xff) < 0x20)" ( (binary_expression "(iVar2 - 0x21U & 0xff) < 0x20" (parenthesized_expression "(iVar2 - 0x21U & 0xff)" ( (binary_expression "iVar2 - 0x21U & 0xff" (binary_expression "iVar2 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" ( (binary_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0" (parenthesized_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1)" ( (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1" (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f)" number_literal >> (parenthesized_expression "(iVar2 - 0x21U & 0x1f)" ( (binary_expression "iVar2 - 0x21U & 0x1f" (binary_expression "iVar2 - 0x21U" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }" { (if_statement "if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" if (parenthesized_expression "(pbVar12[1] == 0x28)" ( (binary_expression "pbVar12[1] == 0x28" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" { (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + 1)" ( (binary_expression "(int)unaff_s1 + 1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" identifier = (cast_expression "(int)(char)pbVar12[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar12[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000742a0;" goto statement_identifier ;) })) }) (else_clause "else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" else (compound_statement "{\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" { (expression_statement "unaff_s0 = pbVar12;" (assignment_expression "unaff_s0 = pbVar12" identifier = identifier) ;) (if_statement "if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "(iVar2 == 0x29)" ( (binary_expression "iVar2 == 0x29" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }" { (expression_statement "puVar6 = (undefined4 *)((int)unaff_s1 + -1);" (assignment_expression "puVar6 = (undefined4 *)((int)unaff_s1 + -1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + -1)" ( (binary_expression "(int)unaff_s1 + -1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" if (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" ( (binary_expression "unaff_s1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" { (if_statement "if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" if (parenthesized_expression "(1 < param_1 - 0x3f)" ( (binary_expression "1 < param_1 - 0x3f" number_literal < (binary_expression "param_1 - 0x3f" identifier - number_literal)) )) (compound_statement "{\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" { (expression_statement "local_48 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "local_48 = pbVar12 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar12 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" identifier = (binary_expression "pbVar12 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\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                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }" { (expression_statement "iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((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 "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + 0x18)" ( (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" ( (pointer_expression "*(code *)PTR_mempcpy_000b7c88" * (cast_expression "(code *)PTR_mempcpy_000b7c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20 + iVar2 + 0x1c)" ( (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*unaff_s1 = 0;" (assignment_expression "*unaff_s1 = 0" (pointer_expression "*unaff_s1" * identifier) = number_literal) ;) (expression_statement "*local_34 = unaff_s1;" (assignment_expression "*local_34 = unaff_s1" (pointer_expression "*local_34" * identifier) = identifier) ;) (expression_statement "param_1 = param_1 - 0x21;" (assignment_expression "param_1 = param_1 - 0x21" identifier = (binary_expression "param_1 - 0x21" identifier - number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" identifier = (binary_expression "puVar20 + iVar2" identifier + identifier)) ;) (if_statement "if (param_1 < 0x20) {\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" if (parenthesized_expression "(param_1 < 0x20)" ( (binary_expression "param_1 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00073e70 */\n                    /* WARNING: Treating indirect jump as call */\n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" { comment comment (expression_statement "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;" (assignment_expression "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" * (cast_expression "(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" ( (binary_expression "PTR_DAT_000b758c + param_1 * 4 + 0x1c50" (binary_expression "PTR_DAT_000b758c + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) })) (break_statement "break;" break ;) })) }) (else_clause "else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" else (if_statement "if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0))" ( (binary_expression "(iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)" (parenthesized_expression "(iVar2 == 0x7c)" ( (binary_expression "iVar2 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" ( (binary_expression "unaff_s1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" { (expression_statement "pbVar3 = local_48;" (assignment_expression "pbVar3 = local_48" identifier = identifier) ;) (if_statement "if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" if (parenthesized_expression "(unaff_s7 == 0)" ( (binary_expression "unaff_s7 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" { (expression_statement "pbVar3 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "pbVar3 = pbVar12 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar12 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" identifier = (binary_expression "pbVar12 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar3 + 7)" ( (binary_expression "pbVar3 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar3 + 7)" ( (binary_expression "pbVar3 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + 0x18)" ( (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" ( (pointer_expression "*(code *)PTR_mempcpy_000b7c88" * (cast_expression "(code *)PTR_mempcpy_000b7c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20 + iVar2 + 0x1c)" ( (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*unaff_s5 = 0;" (assignment_expression "*unaff_s5 = 0" (pointer_expression "*unaff_s5" * identifier) = number_literal) ;) (expression_statement "*local_34 = unaff_s5;" (assignment_expression "*local_34 = unaff_s5" (pointer_expression "*local_34" * identifier) = identifier) ;) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar12 + 1;" (assignment_expression "unaff_s2 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" identifier = (binary_expression "puVar20 + iVar2" identifier + identifier)) ;) (expression_statement "local_34 = unaff_s5;" (assignment_expression "local_34 = unaff_s5" identifier = identifier) ;) })))) }))) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = puVar6;" (assignment_expression "unaff_s1 = puVar6" identifier = identifier) ;) }))) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" identifier = (cast_expression "(int)(char)pbVar12[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar12[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar12 = unaff_s0;" (assignment_expression "pbVar12 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "switchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_2c == *(byte **)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" * (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" ( (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 "pcVar22 = FUN_000742fc;" (assignment_expression "pcVar22 = FUN_000742fc" identifier = identifier) ;) (expression_statement "pbVar12 = local_2c;" (assignment_expression "pbVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar18 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = puVar18 + 0x4b134;" (assignment_expression "puVar7 = puVar18 + 0x4b134" identifier = (binary_expression "puVar18 + 0x4b134" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -4) = pcVar22;" (assignment_expression "*(code **)(puVar20 + -4) = pcVar22" (pointer_expression "*(code **)(puVar20 + -4)" * (cast_expression "(code **)(puVar20 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0xc) = unaff_s7;" (assignment_expression "*(uint *)(puVar20 + -0xc) = unaff_s7" (pointer_expression "*(uint *)(puVar20 + -0xc)" * (cast_expression "(uint *)(puVar20 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x10) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x14)" * (cast_expression "(undefined4 **)(puVar20 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(puVar20 + -0x18)" * (cast_expression "(undefined **)(puVar20 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x1c) = param_2;" (assignment_expression "*(byte **)(puVar20 + -0x1c) = param_2" (pointer_expression "*(byte **)(puVar20 + -0x1c)" * (cast_expression "(byte **)(puVar20 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x20) = unaff_s2;" (assignment_expression "*(byte **)(puVar20 + -0x20) = unaff_s2" (pointer_expression "*(byte **)(puVar20 + -0x20)" * (cast_expression "(byte **)(puVar20 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x24) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -0x24) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -0x24)" * (cast_expression "(undefined4 **)(puVar20 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x28) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x28) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x28)" * (cast_expression "(byte **)(puVar20 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x28)" ( (binary_expression "puVar20 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x158) = puVar7;" (assignment_expression "*(undefined **)(puVar20 + -0x158) = puVar7" (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" * (cast_expression "(undefined4 *)(puVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);" (assignment_expression "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c)" (pointer_expression "*(undefined4 *)(puVar20 + -0x2c)" * (cast_expression "(undefined4 *)(puVar20 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(puVar18 + 0x4396c)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x4396c)" * (cast_expression "(undefined4 **)(puVar18 + 0x4396c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x4396c)" ( (binary_expression "puVar18 + 0x4396c" identifier + number_literal) )))))) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar3 = param_3;" (assignment_expression "pbVar3 = param_3" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar9;" (assignment_expression "pbVar13 = pbVar9" identifier = identifier) ;) (if_statement "if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);" (assignment_expression "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" identifier = (cast_expression "(undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 0x10" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;" (assignment_expression "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar18 + 0x43290)" * (cast_expression "(int *)(puVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43290)" ( (binary_expression "puVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;" (assignment_expression "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar20 + -0x138)" * (cast_expression "(int *)(puVar20 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x138)" ( (binary_expression "puVar20 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar18 + 0x4371c)" * (cast_expression "(int *)(puVar18 + 0x4371c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x4371c)" ( (binary_expression "puVar18 + 0x4371c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);" (assignment_expression "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424)" (pointer_expression "*(undefined4 *)(puVar20 + -0x140)" * (cast_expression "(undefined4 *)(puVar20 + -0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x140)" ( (binary_expression "puVar20 + -0x140" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 0x43424)" * (cast_expression "(undefined4 *)(puVar18 + 0x43424)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43424)" ( (binary_expression "puVar18 + 0x43424" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;" (assignment_expression "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar20 + -0x13c)" * (cast_expression "(int *)(puVar20 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x13c)" ( (binary_expression "puVar20 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar18 + 0x43290)" * (cast_expression "(int *)(puVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43290)" ( (binary_expression "puVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);" do (compound_statement "{\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    }" { (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" ( (pointer_expression "**(code **)(puVar7 + -0x7888)" * (pointer_expression "*(code **)(puVar7 + -0x7888)" * (cast_expression "(code **)(puVar7 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7888)" ( (binary_expression "puVar7 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" identifier = (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);" (assignment_expression "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar5 + uVar14 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar14 * 4 + 3)" ( (binary_expression "*piVar5 + uVar14 * 4 + 3" (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar14 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (if_statement "if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" if (parenthesized_expression "((uVar14 - 0x21 & 0xff) < 0x3c)" ( (binary_expression "(uVar14 - 0x21 & 0xff) < 0x3c" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" ( (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" identifier - number_literal) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" { comment comment (expression_statement "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();" (assignment_expression "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" * (cast_expression "(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" ( (binary_expression "puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" ( (binary_expression "*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) + (binary_expression "(uVar14 - 0x21 & 0xff) * 4" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" ( (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" identifier - number_literal) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (param_3 == pbVar13) goto LAB_00074dd8;" if (parenthesized_expression "(param_3 == pbVar13)" ( (binary_expression "param_3 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" if (parenthesized_expression "(unaff_s5 == (undefined4 *)0x0)" ( (binary_expression "unaff_s5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (uint)*pbVar13;\n      }" { (expression_statement "uVar4 = (uint)*pbVar13;" (assignment_expression "uVar4 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" else (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" ( (pointer_expression "**(code **)(puVar7 + -0x7888)" * (pointer_expression "*(code **)(puVar7 + -0x7888)" * (cast_expression "(code **)(puVar7 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7888)" ( (binary_expression "puVar7 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" identifier = (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);" (assignment_expression "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + (uint)*pbVar13 * 4)" * (cast_expression "(uint *)(*piVar5 + (uint)*pbVar13 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (uint)*pbVar13 * 4)" ( (binary_expression "*piVar5 + (uint)*pbVar13 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(uint)*pbVar13 * 4" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) }))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 != uVar14) goto LAB_00074dd8;" if (parenthesized_expression "(uVar4 != uVar14)" ( (binary_expression "uVar4 != uVar14" identifier != identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (expression_statement "pbVar12 = *(byte **)(puVar20 + -0x14c);" (assignment_expression "pbVar12 = *(byte **)(puVar20 + -0x14c)" identifier = (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" * (cast_expression "(undefined4 *)(puVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) ;) })) (if_statement "if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" if (parenthesized_expression "(param_3 == pbVar13)" ( (binary_expression "param_3 == pbVar13" identifier == identifier) )) (compound_statement "{\n    uVar21 = 0;\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) }) (else_clause "else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" else (if_statement "if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" if (parenthesized_expression "((*(uint *)(puVar20 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(puVar20 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 8" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar21 = 1;\n  }" { (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" else (compound_statement "{\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" { (expression_statement "uVar21 = (uint)(*pbVar13 != 0x2f);" (assignment_expression "uVar21 = (uint)(*pbVar13 != 0x2f)" identifier = (call_expression "(uint)(*pbVar13 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar13 != 0x2f)" ( (binary_expression "*pbVar13 != 0x2f" (pointer_expression "*pbVar13" * identifier) != number_literal) )))) ;) }))))) (labeled_statement "LAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar20 + -0x2c);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar20 + -0x2c)" * (cast_expression "(int *)(puVar20 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }" if (parenthesized_expression "(iVar2 == **(int **)(puVar7 + -0x77c8))" ( (binary_expression "iVar2 == **(int **)(puVar7 + -0x77c8)" identifier == (pointer_expression "**(int **)(puVar7 + -0x77c8)" * (pointer_expression "*(int **)(puVar7 + -0x77c8)" * (cast_expression "(int **)(puVar7 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x77c8)" ( (binary_expression "puVar7 + -0x77c8" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar21;\n  }" { (return_statement "return uVar21;" return identifier ;) })) (expression_statement "pcVar22 = *(code **)(puVar7 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(puVar7 + -0x7834)" identifier = (pointer_expression "*(code **)(puVar7 + -0x7834)" * (cast_expression "(code **)(puVar7 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7834)" ( (binary_expression "puVar7 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = rpl_fnmatch;" (assignment_expression "pcVar23 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -0x174) = pcVar23;" (assignment_expression "*(code **)(puVar20 + -0x174) = pcVar23" (pointer_expression "*(code **)(puVar20 + -0x174)" * (cast_expression "(code **)(puVar20 + -0x174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x174)" ( (binary_expression "puVar20 + -0x174" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x178) = uVar21;" (assignment_expression "*(uint *)(puVar20 + -0x178) = uVar21" (pointer_expression "*(uint *)(puVar20 + -0x178)" * (cast_expression "(uint *)(puVar20 + -0x178)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x178)" ( (binary_expression "puVar20 + -0x178" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x17c) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x17c) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x17c)" * (cast_expression "(uint *)(puVar20 + -0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x17c)" ( (binary_expression "puVar20 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x180) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x180) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x180)" * (cast_expression "(undefined4 **)(puVar20 + -0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x180)" ( (binary_expression "puVar20 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x184) = uVar14;" (assignment_expression "*(uint *)(puVar20 + -0x184) = uVar14" (pointer_expression "*(uint *)(puVar20 + -0x184)" * (cast_expression "(uint *)(puVar20 + -0x184)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x184)" ( (binary_expression "puVar20 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x188) = pbVar13;" (assignment_expression "*(byte **)(puVar20 + -0x188) = pbVar13" (pointer_expression "*(byte **)(puVar20 + -0x188)" * (cast_expression "(byte **)(puVar20 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x188)" ( (binary_expression "puVar20 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x18c) = pbVar12;" (assignment_expression "*(byte **)(puVar20 + -0x18c) = pbVar12" (pointer_expression "*(byte **)(puVar20 + -0x18c)" * (cast_expression "(byte **)(puVar20 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18c)" ( (binary_expression "puVar20 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -400) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -400) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -400)" * (cast_expression "(undefined4 **)(puVar20 + -400)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -400)" ( (binary_expression "puVar20 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x194) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x194) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x194)" * (cast_expression "(byte **)(puVar20 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x194)" ( (binary_expression "puVar20 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;" (assignment_expression "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438" (pointer_expression "*(code **)(puVar20 + -0x1b8)" * (cast_expression "(code **)(puVar20 + -0x1b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) = (binary_expression "pcVar22 + 0x4a438" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x1ac) = iVar2;" (assignment_expression "*(int *)(puVar20 + -0x1ac) = iVar2" (pointer_expression "*(int *)(puVar20 + -0x1ac)" * (cast_expression "(int *)(puVar20 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x1b0) = pbVar9;" (assignment_expression "*(byte **)(puVar20 + -0x1b0) = pbVar9" (pointer_expression "*(byte **)(puVar20 + -0x1b0)" * (cast_expression "(byte **)(puVar20 + -0x1b0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);" (assignment_expression "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70)" (pointer_expression "*(undefined4 *)(puVar20 + -0x19c)" * (cast_expression "(undefined4 *)(puVar20 + -0x19c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(pcVar22 + 0x42c70)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x42c70)" * (cast_expression "(undefined4 **)(pcVar22 + 0x42c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42c70)" ( (binary_expression "pcVar22 + 0x42c70" identifier + number_literal) )))))) ;) (expression_statement "iVar2 = (**(code **)(pcVar22 + 0x42e44))();" (assignment_expression "iVar2 = (**(code **)(pcVar22 + 0x42e44))()" identifier = (call_expression "(**(code **)(pcVar22 + 0x42e44))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x42e44))" ( (pointer_expression "**(code **)(pcVar22 + 0x42e44)" * (pointer_expression "*(code **)(pcVar22 + 0x42e44)" * (cast_expression "(code **)(pcVar22 + 0x42e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e44)" ( (binary_expression "pcVar22 + 0x42e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)(puVar20 + -0x1a4) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a4) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a4)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a4)" ( (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1a0) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a0) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a0)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a0)" ( (binary_expression "puVar20 + -0x1a0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" identifier = (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,puVar20 + -0x1ac,0)" ( number_literal , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" { (expression_statement "puVar10 = (undefined1 *)0x0;" (assignment_expression "puVar10 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" identifier = (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" ( number_literal , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , number_literal , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" { (expression_statement "uVar21 = uVar14 + iVar11;" (assignment_expression "uVar21 = uVar14 + iVar11" identifier = (binary_expression "uVar14 + iVar11" identifier + identifier)) ;) (if_statement "if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "((uVar21 < uVar14) || (0x3fffffff < uVar21))" ( (binary_expression "(uVar21 < uVar14) || (0x3fffffff < uVar21)" (parenthesized_expression "(uVar21 < uVar14)" ( (binary_expression "uVar21 < uVar14" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar21)" ( (binary_expression "0x3fffffff < uVar21" number_literal < identifier) ))) )) (compound_statement "{\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }" { (expression_statement "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7578))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7578))" ( (pointer_expression "**(code **)(iVar19 + -0x7578)" * (pointer_expression "*(code **)(iVar19 + -0x7578)" * (cast_expression "(code **)(iVar19 + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7578)" ( (binary_expression "iVar19 + -0x7578" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" else (if_statement "if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "(uVar21 < 2000)" ( (binary_expression "uVar21 < 2000" identifier < number_literal) )) (compound_statement "{\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }" { (expression_statement "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar21 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar21 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar21 * 4 + 7 & 0xfffffff8" (binary_expression "uVar21 * 4 + 7" (binary_expression "uVar21 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar16 = puVar20 + iVar17 + -0x1b8;" (assignment_expression "puVar16 = puVar20 + iVar17 + -0x1b8" identifier = (binary_expression "puVar20 + iVar17 + -0x1b8" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar15 = puVar16 + uVar14 * 4;" (assignment_expression "puVar15 = puVar16 + uVar14 * 4" identifier = (binary_expression "puVar16 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal))) ;) (expression_statement "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + iVar17 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + iVar17 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + iVar17 + -0x1c0)" ( (binary_expression "puVar20 + iVar17 + -0x1c0" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar15 + iVar2 * 4;" (assignment_expression "puVar10 = puVar15 + iVar2 * 4" identifier = (binary_expression "puVar15 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal))) ;) (expression_statement "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( identifier , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + iVar17 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + iVar17 + -0x1d0" identifier = (binary_expression "puVar20 + iVar17 + -0x1d0" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" else (compound_statement "{\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" { (expression_statement "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);" (assignment_expression "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4)" identifier = (call_expression "(**(code **)(iVar19 + -0x7820))(uVar21 * 4)" (parenthesized_expression "(**(code **)(iVar19 + -0x7820))" ( (pointer_expression "**(code **)(iVar19 + -0x7820)" * (pointer_expression "*(code **)(iVar19 + -0x7820)" * (cast_expression "(code **)(iVar19 + -0x7820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7820)" ( (binary_expression "iVar19 + -0x7820" identifier + number_literal) ))))) )) (argument_list "(uVar21 * 4)" ( (binary_expression "uVar21 * 4" identifier * number_literal) )))) ;) (if_statement "if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }" { (expression_statement "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x7578" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }) (else_clause "else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" else (compound_statement "{\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" { (expression_statement "iVar17 = iVar19 + uVar14 * 4;" (assignment_expression "iVar17 = iVar19 + uVar14 * 4" identifier = (binary_expression "iVar19 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);" (assignment_expression "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4)" identifier = (cast_expression "(undefined1 *)(iVar17 + iVar2 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar2 * 4)" ( (binary_expression "iVar17 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) ;) (expression_statement "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( identifier , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x76fc" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar19)" ( identifier ))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }))) }))))) (goto_statement "goto LAB_000750b0;" goto statement_identifier ;) })) })) })) (expression_statement "iVar11 = *(int *)(puVar20 + -0x1b0);" (assignment_expression "iVar11 = *(int *)(puVar20 + -0x1b0)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b0)" * (cast_expression "(int *)(puVar20 + -0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11)" identifier = (call_expression "(**(code **)(iVar19 + -0x779c))(iVar11)" (parenthesized_expression "(**(code **)(iVar19 + -0x779c))" ( (pointer_expression "**(code **)(iVar19 + -0x779c)" * (pointer_expression "*(code **)(iVar19 + -0x779c)" * (cast_expression "(code **)(iVar19 + -0x779c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x779c)" ( (binary_expression "iVar19 + -0x779c" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(iVar11 + iVar2);" (assignment_expression "puVar10 = (undefined1 *)(iVar11 + iVar2)" identifier = (cast_expression "(undefined1 *)(iVar11 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar2)" ( (binary_expression "iVar11 + iVar2" identifier + identifier) )))) ;) (expression_statement "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar20 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar20 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (labeled_statement "LAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" statement_identifier : (if_statement "if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" if (parenthesized_expression "(*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8))" ( (binary_expression "*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)" (pointer_expression "*(int *)(puVar20 + -0x19c)" * (cast_expression "(int *)(puVar20 + -0x19c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) )))) != (pointer_expression "**(int **)(iVar2 + -0x77c8)" * (pointer_expression "*(int **)(iVar2 + -0x77c8)" * (cast_expression "(int **)(iVar2 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x77c8)" ( (binary_expression "iVar2 + -0x77c8" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" { (expression_statement "pcVar22 = *(code **)(iVar2 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(iVar2 + -0x7834)" identifier = (pointer_expression "*(code **)(iVar2 + -0x7834)" * (cast_expression "(code **)(iVar2 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7834)" ( (binary_expression "iVar2 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = rpl_fseek;" (assignment_expression "pcVar23 = rpl_fseek" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar15 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar15 + -4) = pcVar23" (pointer_expression "*(code **)(puVar15 + -4)" * (cast_expression "(code **)(puVar15 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;" (assignment_expression "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130" (pointer_expression "*(code **)(puVar15 + -0x10)" * (cast_expression "(code **)(puVar15 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "pcVar22 + 0x4a130" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar10;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar10" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = rpl_fseeko();" (assignment_expression "uVar14 = rpl_fseeko()" identifier = (call_expression "rpl_fseeko()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) }))) (return_statement "return uVar14;" return identifier ;) })))
(translation_unit "int ext_match(int opt,char *pattern,char *string,char *string_end,_Bool no_leading_period,int flags)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 uVar10;\n  FILE *fp;\n  byte *pbVar11;\n  wchar_t *string_end_00;\n  byte *unaff_s0;\n  wchar_t *string_00;\n  patternlist *unaff_s1;\n  patternlist *ppVar12;\n  byte *unaff_s2;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  int unaff_s4;\n  uint uVar16;\n  patternlist *unaff_s5;\n  wchar_t *pwVar17;\n  uint unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  code *pcVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  undefined1 auStack_68 [24];\n  int local_50;\n  byte *local_48;\n  int local_44;\n  char *local_40;\n  uint local_3c;\n  char *local_38;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  local_50 = in_t9 + 0x4b800;\n  puVar20 = auStack_68;\n  local_3c = (uint)no_leading_period;\n  local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038);\n  list = (patternlist *)0x0;\n  pbVar11 = (byte *)pattern;\n  local_40 = string_end;\n  local_38 = string;\n  local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern);\n  iVar3 = (int)pattern[1];\n  iVar8 = local_50;\n  if (iVar3 != 0) {\n    unaff_s2 = (byte *)(pattern + 1);\n    unaff_s1 = (patternlist *)0x0;\n    unaff_s4 = *(int *)(local_50 + -0x7d10);\n    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;\n    unaff_s7 = (uint)(opt - 0x3fU < 2);\n    pbVar13 = unaff_s2;\n    puVar20 = auStack_68;\n    local_34 = (patternlist *)&list;\nLAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);\n  }\nLAB_00073d48:\n  if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {\n    return -1;\n  }\n  pcVar18 = *(code **)(iVar8 + -0x7834);\n  pcVar22 = internal_fnmatch;\n  pbVar13 = local_2c;\n  (*pcVar18)();\n  pcVar19 = pcVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(int *)(puVar20 + -0x10) = opt;\n  *(patternlist **)(puVar20 + -0x14) = unaff_s5;\n  *(int *)(puVar20 + -0x18) = unaff_s4;\n  *(char **)(puVar20 + -0x1c) = pattern;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(patternlist **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(code **)(puVar20 + -0x158) = pcVar19;\n  *(char **)(puVar20 + 0xc) = string_end;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n  uVar16 = (uint)*pbVar13;\n  pbVar5 = (byte *)string;\n  pbVar14 = pbVar11;\n  if (uVar16 != 0) {\n    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);\n  }\n  if ((byte *)string == pbVar14) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar8 = *(int *)(puVar20 + -0x2c);\n  if (iVar8 == **(int **)(pcVar19 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7834);\n  pcVar19 = rpl_fnmatch;\n  (*pcVar18)();\n  puVar4 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar19;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(int *)(puVar20 + -0x17c) = opt;\n  *(patternlist **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar16;\n  *(byte **)(puVar20 + -0x188) = pbVar14;\n  *(byte **)(puVar20 + -0x18c) = pbVar13;\n  *(patternlist **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar8;\n  *(byte **)(puVar20 + -0x1b0) = pbVar11;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70);\n  iVar8 = (**(code **)(pcVar18 + 0x42e44))();\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  if (iVar8 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar3 = *(int *)(puVar20 + -0x1b8);\n    uVar16 = iVar8 + 1;\n    if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  string_00 = *(wchar_t **)(puVar20 + -0x1b0);\n  iVar8 = (**(code **)(iVar3 + -0x779c))(string_00);\n  *(byte **)(puVar20 + -0x1c0) = pbVar5;\n  string_end_00 = (wchar_t *)((int)string_00 + iVar8);\n  iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0));\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  puVar4 = puVar20 + -0x1d0;\nLAB_000750b0:\n  fp = *(FILE **)(puVar20 + -0x19c);\n  if (fp != (FILE *)**(int **)(iVar3 + -0x77c8)) {\n    pcVar18 = *(code **)(iVar3 + -0x7834);\n    pcVar19 = rpl_fseek;\n    (*pcVar18)();\n    *(code **)(puVar4 + -4) = pcVar19;\n    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;\n    *(wchar_t **)(puVar4 + -0x18) = string_end_00;\n    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);\n    return iVar8;\n  }\n  return iVar8;\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  byte bVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 uVar10;\n  FILE *fp;\n  byte *pbVar11;\n  wchar_t *string_end_00;\n  byte *unaff_s0;\n  wchar_t *string_00;\n  patternlist *unaff_s1;\n  patternlist *ppVar12;\n  byte *unaff_s2;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  int unaff_s4;\n  uint uVar16;\n  patternlist *unaff_s5;\n  wchar_t *pwVar17;\n  uint unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  code *pcVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  undefined1 auStack_68 [24];\n  int local_50;\n  byte *local_48;\n  int local_44;\n  char *local_40;\n  uint local_3c;\n  char *local_38;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  local_50 = in_t9 + 0x4b800;\n  puVar20 = auStack_68;\n  local_3c = (uint)no_leading_period;\n  local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038);\n  list = (patternlist *)0x0;\n  pbVar11 = (byte *)pattern;\n  local_40 = string_end;\n  local_38 = string;\n  local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern);\n  iVar3 = (int)pattern[1];\n  iVar8 = local_50;\n  if (iVar3 != 0) {\n    unaff_s2 = (byte *)(pattern + 1);\n    unaff_s1 = (patternlist *)0x0;\n    unaff_s4 = *(int *)(local_50 + -0x7d10);\n    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;\n    unaff_s7 = (uint)(opt - 0x3fU < 2);\n    pbVar13 = unaff_s2;\n    puVar20 = auStack_68;\n    local_34 = (patternlist *)&list;\nLAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);\n  }\nLAB_00073d48:\n  if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {\n    return -1;\n  }\n  pcVar18 = *(code **)(iVar8 + -0x7834);\n  pcVar22 = internal_fnmatch;\n  pbVar13 = local_2c;\n  (*pcVar18)();\n  pcVar19 = pcVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(int *)(puVar20 + -0x10) = opt;\n  *(patternlist **)(puVar20 + -0x14) = unaff_s5;\n  *(int *)(puVar20 + -0x18) = unaff_s4;\n  *(char **)(puVar20 + -0x1c) = pattern;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(patternlist **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(code **)(puVar20 + -0x158) = pcVar19;\n  *(char **)(puVar20 + 0xc) = string_end;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n  uVar16 = (uint)*pbVar13;\n  pbVar5 = (byte *)string;\n  pbVar14 = pbVar11;\n  if (uVar16 != 0) {\n    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);\n  }\n  if ((byte *)string == pbVar14) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar8 = *(int *)(puVar20 + -0x2c);\n  if (iVar8 == **(int **)(pcVar19 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7834);\n  pcVar19 = rpl_fnmatch;\n  (*pcVar18)();\n  puVar4 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar19;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(int *)(puVar20 + -0x17c) = opt;\n  *(patternlist **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar16;\n  *(byte **)(puVar20 + -0x188) = pbVar14;\n  *(byte **)(puVar20 + -0x18c) = pbVar13;\n  *(patternlist **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar8;\n  *(byte **)(puVar20 + -0x1b0) = pbVar11;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70);\n  iVar8 = (**(code **)(pcVar18 + 0x42e44))();\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  if (iVar8 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar3 = *(int *)(puVar20 + -0x1b8);\n    uVar16 = iVar8 + 1;\n    if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  string_00 = *(wchar_t **)(puVar20 + -0x1b0);\n  iVar8 = (**(code **)(iVar3 + -0x779c))(string_00);\n  *(byte **)(puVar20 + -0x1c0) = pbVar5;\n  string_end_00 = (wchar_t *)((int)string_00 + iVar8);\n  iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0));\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  puVar4 = puVar20 + -0x1d0;\nLAB_000750b0:\n  fp = *(FILE **)(puVar20 + -0x19c);\n  if (fp != (FILE *)**(int **)(iVar3 + -0x77c8)) {\n    pcVar18 = *(code **)(iVar3 + -0x7834);\n    pcVar19 = rpl_fseek;\n    (*pcVar18)();\n    *(code **)(puVar4 + -4) = pcVar19;\n    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;\n    *(wchar_t **)(puVar4 + -0x18) = string_end_00;\n    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);\n    return iVar8;\n  }\n  return iVar8;\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  byte bVar1;\n  int iVar2;\n  int iVar3;\n  undefined1 *puVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 *puVar9;\n  undefined4 uVar10;\n  FILE *fp;\n  byte *pbVar11;\n  wchar_t *string_end_00;\n  byte *unaff_s0;\n  wchar_t *string_00;\n  patternlist *unaff_s1;\n  patternlist *ppVar12;\n  byte *unaff_s2;\n  byte *pbVar13;\n  byte *pbVar14;\n  int iVar15;\n  int unaff_s4;\n  uint uVar16;\n  patternlist *unaff_s5;\n  wchar_t *pwVar17;\n  uint unaff_s7;\n  int in_t9;\n  code *pcVar18;\n  code *pcVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  undefined1 auStack_68 [24];\n  int local_50;\n  byte *local_48;\n  int local_44;\n  char *local_40;\n  uint local_3c;\n  char *local_38;\n  patternlist *local_34;\n  patternlist *list;\n  byte *local_2c;\n  \n  local_50 = in_t9 + 0x4b800;\n  puVar20 = auStack_68;\n  local_3c = (uint)no_leading_period;\n  local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038);\n  list = (patternlist *)0x0;\n  pbVar11 = (byte *)pattern;\n  local_40 = string_end;\n  local_38 = string;\n  local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern);\n  iVar3 = (int)pattern[1];\n  iVar8 = local_50;\n  if (iVar3 != 0) {\n    unaff_s2 = (byte *)(pattern + 1);\n    unaff_s1 = (patternlist *)0x0;\n    unaff_s4 = *(int *)(local_50 + -0x7d10);\n    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;\n    unaff_s7 = (uint)(opt - 0x3fU < 2);\n    pbVar13 = unaff_s2;\n    puVar20 = auStack_68;\n    local_34 = (patternlist *)&list;\nLAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);\n  }\nLAB_00073d48:\n  if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {\n    return -1;\n  }\n  pcVar18 = *(code **)(iVar8 + -0x7834);\n  pcVar22 = internal_fnmatch;\n  pbVar13 = local_2c;\n  (*pcVar18)();\n  pcVar19 = pcVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(int *)(puVar20 + -0x10) = opt;\n  *(patternlist **)(puVar20 + -0x14) = unaff_s5;\n  *(int *)(puVar20 + -0x18) = unaff_s4;\n  *(char **)(puVar20 + -0x1c) = pattern;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(patternlist **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(code **)(puVar20 + -0x158) = pcVar19;\n  *(char **)(puVar20 + 0xc) = string_end;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n  uVar16 = (uint)*pbVar13;\n  pbVar5 = (byte *)string;\n  pbVar14 = pbVar11;\n  if (uVar16 != 0) {\n    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);\n  }\n  if ((byte *)string == pbVar14) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar8 = *(int *)(puVar20 + -0x2c);\n  if (iVar8 == **(int **)(pcVar19 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar18 = *(code **)(pcVar19 + -0x7834);\n  pcVar19 = rpl_fnmatch;\n  (*pcVar18)();\n  puVar4 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar19;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(int *)(puVar20 + -0x17c) = opt;\n  *(patternlist **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar16;\n  *(byte **)(puVar20 + -0x188) = pbVar14;\n  *(byte **)(puVar20 + -0x18c) = pbVar13;\n  *(patternlist **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar8;\n  *(byte **)(puVar20 + -0x1b0) = pbVar11;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70);\n  iVar8 = (**(code **)(pcVar18 + 0x42e44))();\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  if (iVar8 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar3 = *(int *)(puVar20 + -0x1b8);\n    uVar16 = iVar8 + 1;\n    if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  string_00 = *(wchar_t **)(puVar20 + -0x1b0);\n  iVar8 = (**(code **)(iVar3 + -0x779c))(string_00);\n  *(byte **)(puVar20 + -0x1c0) = pbVar5;\n  string_end_00 = (wchar_t *)((int)string_00 + iVar8);\n  iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0));\n  iVar3 = *(int *)(puVar20 + -0x1b8);\n  puVar4 = puVar20 + -0x1d0;\nLAB_000750b0:\n  fp = *(FILE **)(puVar20 + -0x19c);\n  if (fp != (FILE *)**(int **)(iVar3 + -0x77c8)) {\n    pcVar18 = *(code **)(iVar3 + -0x7834);\n    pcVar19 = rpl_fseek;\n    (*pcVar18)();\n    *(code **)(puVar4 + -4) = pcVar19;\n    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;\n    *(wchar_t **)(puVar4 + -0x18) = string_end_00;\n    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);\n    return iVar8;\n  }\n  return iVar8;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "FILE *fp;" type_identifier (pointer_declarator "*fp" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "wchar_t *string_end_00;" type_identifier (pointer_declarator "*string_end_00" * identifier) ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "wchar_t *string_00;" type_identifier (pointer_declarator "*string_00" * identifier) ;) (declaration "patternlist *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "patternlist *ppVar12;" type_identifier (pointer_declarator "*ppVar12" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int unaff_s4;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "patternlist *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "wchar_t *pwVar17;" type_identifier (pointer_declarator "*pwVar17" * identifier) ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "char *local_38;" primitive_type (pointer_declarator "*local_38" * 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 "local_50 = in_t9 + 0x4b800;" (assignment_expression "local_50 = in_t9 + 0x4b800" identifier = (binary_expression "in_t9 + 0x4b800" identifier + number_literal)) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (expression_statement "local_3c = (uint)no_leading_period;" (assignment_expression "local_3c = (uint)no_leading_period" identifier = (cast_expression "(uint)no_leading_period" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038);" (assignment_expression "local_2c = (byte *)**(undefined4 **)(in_t9 + 0x44038)" identifier = (cast_expression "(byte *)**(undefined4 **)(in_t9 + 0x44038)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(in_t9 + 0x44038)" * (pointer_expression "*(undefined4 **)(in_t9 + 0x44038)" * (cast_expression "(undefined4 **)(in_t9 + 0x44038)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x44038)" ( (binary_expression "in_t9 + 0x44038" 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 "pbVar11 = (byte *)pattern;" (assignment_expression "pbVar11 = (byte *)pattern" identifier = (cast_expression "(byte *)pattern" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_40 = string_end;" (assignment_expression "local_40 = string_end" identifier = identifier) ;) (expression_statement "local_38 = string;" (assignment_expression "local_38 = string" identifier = identifier) ;) (expression_statement "local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern);" (assignment_expression "local_48 = (byte *)(**(code **)(in_t9 + 0x44064))(pattern)" identifier = (cast_expression "(byte *)(**(code **)(in_t9 + 0x44064))(pattern)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x44064))(pattern)" (parenthesized_expression "(**(code **)(in_t9 + 0x44064))" ( (pointer_expression "**(code **)(in_t9 + 0x44064)" * (pointer_expression "*(code **)(in_t9 + 0x44064)" * (cast_expression "(code **)(in_t9 + 0x44064)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x44064)" ( (binary_expression "in_t9 + 0x44064" identifier + number_literal) ))))) )) (argument_list "(pattern)" ( identifier ))))) ;) (expression_statement "iVar3 = (int)pattern[1];" (assignment_expression "iVar3 = (int)pattern[1]" identifier = (cast_expression "(int)pattern[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pattern[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n    unaff_s2 = (byte *)(pattern + 1);\n    unaff_s1 = (patternlist *)0x0;\n    unaff_s4 = *(int *)(local_50 + -0x7d10);\n    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;\n    unaff_s7 = (uint)(opt - 0x3fU < 2);\n    pbVar13 = unaff_s2;\n    puVar20 = auStack_68;\n    local_34 = (patternlist *)&list;\nLAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s2 = (byte *)(pattern + 1);\n    unaff_s1 = (patternlist *)0x0;\n    unaff_s4 = *(int *)(local_50 + -0x7d10);\n    local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;\n    unaff_s7 = (uint)(opt - 0x3fU < 2);\n    pbVar13 = unaff_s2;\n    puVar20 = auStack_68;\n    local_34 = (patternlist *)&list;\nLAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);\n  }" { (expression_statement "unaff_s2 = (byte *)(pattern + 1);" (assignment_expression "unaff_s2 = (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 "unaff_s1 = (patternlist *)0x0;" (assignment_expression "unaff_s1 = (patternlist *)0x0" identifier = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s4 = *(int *)(local_50 + -0x7d10);" (assignment_expression "unaff_s4 = *(int *)(local_50 + -0x7d10)" identifier = (pointer_expression "*(int *)(local_50 + -0x7d10)" * (cast_expression "(int *)(local_50 + -0x7d10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + -0x7d10)" ( (binary_expression "local_50 + -0x7d10" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0;" (assignment_expression "local_44 = *(int *)(local_50 + -0x7ea4) + 0x1ad0" identifier = (binary_expression "*(int *)(local_50 + -0x7ea4) + 0x1ad0" (pointer_expression "*(int *)(local_50 + -0x7ea4)" * (cast_expression "(int *)(local_50 + -0x7ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + -0x7ea4)" ( (binary_expression "local_50 + -0x7ea4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "unaff_s7 = (uint)(opt - 0x3fU < 2);" (assignment_expression "unaff_s7 = (uint)(opt - 0x3fU < 2)" identifier = (call_expression "(uint)(opt - 0x3fU < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(opt - 0x3fU < 2)" ( (binary_expression "opt - 0x3fU < 2" (binary_expression "opt - 0x3fU" identifier - number_literal) < number_literal) )))) ;) (expression_statement "pbVar13 = unaff_s2;" (assignment_expression "pbVar13 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (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))) ;) (labeled_statement "LAB_000742a0:\n    do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);" statement_identifier : (do_statement "do {\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    } while (iVar3 != 0);" do (compound_statement "{\n      if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }\n      iVar3 = (int)(char)pbVar13[1];\n      pbVar13 = unaff_s0;\n    }" { (if_statement "if (iVar3 == 0x5b) {\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }\n      else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }" if (parenthesized_expression "(iVar3 == 0x5b)" ( (binary_expression "iVar3 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }\n        if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }\n        pbVar13 = pbVar5;\n        if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }\n      }" { (if_statement "if (*(int *)(unaff_s4 + -0x2c00) == 0) {\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }" if (parenthesized_expression "(*(int *)(unaff_s4 + -0x2c00) == 0)" ( (binary_expression "*(int *)(unaff_s4 + -0x2c00) == 0" (pointer_expression "*(int *)(unaff_s4 + -0x2c00)" * (cast_expression "(int *)(unaff_s4 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + -0x2c00)" ( (binary_expression "unaff_s4 + -0x2c00" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);\n          uVar10 = 0xffffffff;\n          if (iVar8 != 0) {\n            uVar10 = 1;\n          }\n          *(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;\n          iVar8 = local_50;\n        }" { (expression_statement "iVar8 = (**(code **)(iVar8 + -0x7644))(local_44);" (assignment_expression "iVar8 = (**(code **)(iVar8 + -0x7644))(local_44)" identifier = (call_expression "(**(code **)(iVar8 + -0x7644))(local_44)" (parenthesized_expression "(**(code **)(iVar8 + -0x7644))" ( (pointer_expression "**(code **)(iVar8 + -0x7644)" * (pointer_expression "*(code **)(iVar8 + -0x7644)" * (cast_expression "(code **)(iVar8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7644)" ( (binary_expression "iVar8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            uVar10 = 1;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar10 = 1;\n          }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(unaff_s4 + -0x2c00) = uVar10;" (assignment_expression "*(undefined4 *)(unaff_s4 + -0x2c00) = uVar10" (pointer_expression "*(undefined4 *)(unaff_s4 + -0x2c00)" * (cast_expression "(undefined4 *)(unaff_s4 + -0x2c00)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + -0x2c00)" ( (binary_expression "unaff_s4 + -0x2c00" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) })) (if_statement "if ((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))) {\n          pbVar5 = pbVar13 + 2;\n        }" if (parenthesized_expression "((pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e))))" ( (binary_expression "(pbVar13[1] == 0x21) ||\n           ((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))" (parenthesized_expression "(pbVar13[1] == 0x21)" ( (binary_expression "pbVar13[1] == 0x21" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)))" ( (parenthesized_expression "(pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e))" ( (comma_expression "pbVar5 = pbVar13 + 1, *(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)" (assignment_expression "pbVar5 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) , (binary_expression "*(int *)(unaff_s4 + -0x2c00) < 0 && (pbVar13[1] == 0x5e)" (binary_expression "*(int *)(unaff_s4 + -0x2c00) < 0" (pointer_expression "*(int *)(unaff_s4 + -0x2c00)" * (cast_expression "(int *)(unaff_s4 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + -0x2c00)" ( (binary_expression "unaff_s4 + -0x2c00" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(pbVar13[1] == 0x5e)" ( (binary_expression "pbVar13[1] == 0x5e" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n          pbVar5 = pbVar13 + 2;\n        }" { (expression_statement "pbVar5 = pbVar13 + 2;" (assignment_expression "pbVar5 = pbVar13 + 2" identifier = (binary_expression "pbVar13 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar13 = pbVar5;" (assignment_expression "pbVar13 = pbVar5" identifier = identifier) ;) (if_statement "if (*pbVar13 == 0x5d) {\n          pbVar13 = pbVar13 + 1;\n        }" if (parenthesized_expression "(*pbVar13 == 0x5d)" ( (binary_expression "*pbVar13 == 0x5d" (pointer_expression "*pbVar13" * identifier) == number_literal) )) (compound_statement "{\n          pbVar13 = pbVar13 + 1;\n        }" { (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) })) (while_statement "while( true ) {\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar1 = *pbVar13;\n          unaff_s0 = pbVar13 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar13 = pbVar13 + 1;\n          if (bVar1 == 0) goto LAB_00073d48;\n        }" { (expression_statement "bVar1 = *pbVar13;" (assignment_expression "bVar1 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "unaff_s0 = pbVar13 + 1;" (assignment_expression "unaff_s0 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0x5d) break;" if (parenthesized_expression "(bVar1 == 0x5d)" ( (binary_expression "bVar1 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0) goto LAB_00073d48;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00073d48;" goto statement_identifier ;)) })) }) (else_clause "else {\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }" else (compound_statement "{\n        ppVar12 = unaff_s1;\n        if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar13 + 1;\n        unaff_s1 = ppVar12;\n      }" { (expression_statement "ppVar12 = unaff_s1;" (assignment_expression "ppVar12 = unaff_s1" identifier = identifier) ;) (if_statement "if (((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }" if (parenthesized_expression "(((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0))" ( (binary_expression "((iVar3 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)" (parenthesized_expression "((iVar3 - 0x21U & 0xff) < 0x20)" ( (binary_expression "(iVar3 - 0x21U & 0xff) < 0x20" (parenthesized_expression "(iVar3 - 0x21U & 0xff)" ( (binary_expression "iVar3 - 0x21U & 0xff" (binary_expression "iVar3 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "((0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0)" ( (binary_expression "(0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1) != 0" (parenthesized_expression "(0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1)" ( (binary_expression "0xc0000601U >> (iVar3 - 0x21U & 0x1f) & 1" (binary_expression "0xc0000601U >> (iVar3 - 0x21U & 0x1f)" number_literal >> (parenthesized_expression "(iVar3 - 0x21U & 0x1f)" ( (binary_expression "iVar3 - 0x21U & 0x1f" (binary_expression "iVar3 - 0x21U" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }\n        }" { (if_statement "if (pbVar13[1] == 0x28) {\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }" if (parenthesized_expression "(pbVar13[1] == 0x28)" ( (binary_expression "pbVar13[1] == 0x28" (subscript_expression "pbVar13[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);\n            iVar3 = (int)(char)pbVar13[1];\n            pbVar13 = pbVar13 + 1;\n            goto LAB_000742a0;\n          }" { (expression_statement "unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1);" (assignment_expression "unaff_s1 = (patternlist *)((int)&unaff_s1->next + 1)" identifier = (cast_expression "(patternlist *)((int)&unaff_s1->next + 1)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s1->next + 1)" ( (binary_expression "(int)&unaff_s1->next + 1" (cast_expression "(int)&unaff_s1->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s1->next" & (field_expression "unaff_s1->next" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar3 = (int)(char)pbVar13[1];" (assignment_expression "iVar3 = (int)(char)pbVar13[1]" identifier = (cast_expression "(int)(char)pbVar13[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar13[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar13[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000742a0;" goto statement_identifier ;) })) }) (else_clause "else {\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }" else (compound_statement "{\n          unaff_s0 = pbVar13;\n          if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }\n        }" { (expression_statement "unaff_s0 = pbVar13;" (assignment_expression "unaff_s0 = pbVar13" identifier = identifier) ;) (if_statement "if (iVar3 == 0x29) {\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "(iVar3 == 0x29)" ( (binary_expression "iVar3 == 0x29" identifier == number_literal) )) (compound_statement "{\n            ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);\n            if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }\n          }" { (expression_statement "ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3);" (assignment_expression "ppVar12 = (patternlist *)((int)&unaff_s1[-1].next + 3)" identifier = (cast_expression "(patternlist *)((int)&unaff_s1[-1].next + 3)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s1[-1].next + 3)" ( (binary_expression "(int)&unaff_s1[-1].next + 3" (cast_expression "(int)&unaff_s1[-1].next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s1[-1].next" & (field_expression "unaff_s1[-1].next" (subscript_expression "unaff_s1[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (unaff_s1 == (patternlist *)0x0) {\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }" if (parenthesized_expression "(unaff_s1 == (patternlist *)0x0)" ( (binary_expression "unaff_s1 == (patternlist *)0x0" identifier == (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }\n              string = (char *)(pbVar13 + -(int)unaff_s2);\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }\n              break;\n            }" { (if_statement "if (1 < opt - 0x3fU) {\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }" if (parenthesized_expression "(1 < opt - 0x3fU)" ( (binary_expression "1 < opt - 0x3fU" number_literal < (binary_expression "opt - 0x3fU" identifier - number_literal)) )) (compound_statement "{\n                local_48 = pbVar13 + (1 - (int)unaff_s2);\n              }" { (expression_statement "local_48 = pbVar13 + (1 - (int)unaff_s2);" (assignment_expression "local_48 = pbVar13 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar13 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "string = (char *)(pbVar13 + -(int)unaff_s2);" (assignment_expression "string = (char *)(pbVar13 + -(int)unaff_s2)" identifier = (cast_expression "(char *)(pbVar13 + -(int)unaff_s2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + -(int)unaff_s2)" ( (binary_expression "pbVar13 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\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                iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);\n                pbVar11 = unaff_s2;\n                puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n                iVar8 = local_50;\n                *puVar4 = 0;\n                unaff_s1->next = (patternlist *)0x0;\n                local_34->next = unaff_s1;\n                opt = opt - 0x21;\n                puVar20 = puVar20 + iVar3;\n                if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }\n              }" { (expression_statement "iVar3 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar3 = -(((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 "unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18);" (assignment_expression "unaff_s1 = (patternlist *)(puVar20 + iVar3 + 0x18)" identifier = (cast_expression "(patternlist *)(puVar20 + iVar3 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar3 + 0x18)" ( (binary_expression "puVar20 + iVar3 + 0x18" (binary_expression "puVar20 + iVar3" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar11 = unaff_s2;" (assignment_expression "pbVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" identifier = (cast_expression "(undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" (parenthesized_expression "(**(code **)(iVar8 + -0x77a8))" ( (pointer_expression "**(code **)(iVar8 + -0x77a8)" * (pointer_expression "*(code **)(iVar8 + -0x77a8)" * (cast_expression "(code **)(iVar8 + -0x77a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x77a8)" ( (binary_expression "iVar8 + -0x77a8" identifier + number_literal) ))))) )) (argument_list "(puVar20 + iVar3 + 0x1c)" ( (binary_expression "puVar20 + iVar3 + 0x1c" (binary_expression "puVar20 + iVar3" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "unaff_s1->next = (patternlist *)0x0;" (assignment_expression "unaff_s1->next = (patternlist *)0x0" (field_expression "unaff_s1->next" identifier -> field_identifier) = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34->next = unaff_s1;" (assignment_expression "local_34->next = unaff_s1" (field_expression "local_34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "opt = opt - 0x21;" (assignment_expression "opt = opt - 0x21" identifier = (binary_expression "opt - 0x21" identifier - number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar3;" (assignment_expression "puVar20 = puVar20 + iVar3" identifier = (binary_expression "puVar20 + iVar3" identifier + identifier)) ;) (if_statement "if ((uint)opt < 0x20) {\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }" if (parenthesized_expression "((uint)opt < 0x20)" ( (binary_expression "(uint)opt < 0x20" (cast_expression "(uint)opt" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00073e7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                  iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();\n                  return iVar8;\n                }" { comment comment (expression_statement "iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )();" (assignment_expression "iVar8 = (*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )()" identifier = (call_expression "(*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )()" (parenthesized_expression "(*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)\n                          )" ( (pointer_expression "*(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)" * (cast_expression "(code *)(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8)" ( (binary_expression "*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4) + iVar8" (pointer_expression "*(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4)" * (cast_expression "(int *)(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4)" ( (binary_expression "*(int *)(iVar8 + -0x7ea4) + 0x1c50 + opt * 4" (binary_expression "*(int *)(iVar8 + -0x7ea4) + 0x1c50" (pointer_expression "*(int *)(iVar8 + -0x7ea4)" * (cast_expression "(int *)(iVar8 + -0x7ea4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x7ea4)" ( (binary_expression "iVar8 + -0x7ea4" identifier + number_literal) )))) + number_literal) + (binary_expression "opt * 4" identifier * number_literal)) )))) + identifier) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) })) })) (break_statement "break;" break ;) })) }) (else_clause "else if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }" else (if_statement "if ((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)) {\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "((iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0))" ( (binary_expression "(iVar3 == 0x7c) && (unaff_s1 == (patternlist *)0x0)" (parenthesized_expression "(iVar3 == 0x7c)" ( (binary_expression "iVar3 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s1 == (patternlist *)0x0)" ( (binary_expression "unaff_s1 == (patternlist *)0x0" identifier == (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar5 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }\n            string = (char *)(pbVar13 + -(int)unaff_s2);\n            if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;\n            iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);\n            puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);\n            iVar8 = local_50;\n            *puVar4 = 0;\n            unaff_s5->next = (patternlist *)0x0;\n            local_34->next = unaff_s5;\n            pbVar11 = unaff_s2;\n            unaff_s2 = pbVar13 + 1;\n            puVar20 = puVar20 + iVar3;\n            local_34 = unaff_s5;\n          }" { (expression_statement "pbVar5 = local_48;" (assignment_expression "pbVar5 = local_48" identifier = identifier) ;) (if_statement "if (unaff_s7 == 0) {\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }" if (parenthesized_expression "(unaff_s7 == 0)" ( (binary_expression "unaff_s7 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar5 = pbVar13 + (1 - (int)unaff_s2);\n            }" { (expression_statement "pbVar5 = pbVar13 + (1 - (int)unaff_s2);" (assignment_expression "pbVar5 = pbVar13 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar13 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "string = (char *)(pbVar13 + -(int)unaff_s2);" (assignment_expression "string = (char *)(pbVar13 + -(int)unaff_s2)" identifier = (cast_expression "(char *)(pbVar13 + -(int)unaff_s2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + -(int)unaff_s2)" ( (binary_expression "pbVar13 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (if_statement "if (0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar5 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar5 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar5 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar5 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar5 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar5 + 7)" ( (binary_expression "pbVar5 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar3 = -(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar5 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar5 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar5 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar5 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar5 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar5 + 7)" ( (binary_expression "pbVar5 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18);" (assignment_expression "unaff_s5 = (patternlist *)(puVar20 + iVar3 + 0x18)" identifier = (cast_expression "(patternlist *)(puVar20 + iVar3 + 0x18)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar3 + 0x18)" ( (binary_expression "puVar20 + iVar3 + 0x18" (binary_expression "puVar20 + iVar3" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" identifier = (cast_expression "(undefined1 *)(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar8 + -0x77a8))(puVar20 + iVar3 + 0x1c)" (parenthesized_expression "(**(code **)(iVar8 + -0x77a8))" ( (pointer_expression "**(code **)(iVar8 + -0x77a8)" * (pointer_expression "*(code **)(iVar8 + -0x77a8)" * (cast_expression "(code **)(iVar8 + -0x77a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x77a8)" ( (binary_expression "iVar8 + -0x77a8" identifier + number_literal) ))))) )) (argument_list "(puVar20 + iVar3 + 0x1c)" ( (binary_expression "puVar20 + iVar3 + 0x1c" (binary_expression "puVar20 + iVar3" identifier + identifier) + number_literal) ))))) ;) (expression_statement "iVar8 = local_50;" (assignment_expression "iVar8 = local_50" identifier = identifier) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "unaff_s5->next = (patternlist *)0x0;" (assignment_expression "unaff_s5->next = (patternlist *)0x0" (field_expression "unaff_s5->next" identifier -> field_identifier) = (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34->next = unaff_s5;" (assignment_expression "local_34->next = unaff_s5" (field_expression "local_34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar11 = unaff_s2;" (assignment_expression "pbVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar13 + 1;" (assignment_expression "unaff_s2 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar3;" (assignment_expression "puVar20 = puVar20 + iVar3" identifier = (binary_expression "puVar20 + iVar3" identifier + identifier)) ;) (expression_statement "local_34 = unaff_s5;" (assignment_expression "local_34 = unaff_s5" identifier = identifier) ;) })))) }))) (expression_statement "unaff_s0 = pbVar13 + 1;" (assignment_expression "unaff_s0 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = ppVar12;" (assignment_expression "unaff_s1 = ppVar12" identifier = identifier) ;) }))) (expression_statement "iVar3 = (int)(char)pbVar13[1];" (assignment_expression "iVar3 = (int)(char)pbVar13[1]" identifier = (cast_expression "(int)(char)pbVar13[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar13[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar13[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar13 = unaff_s0;" (assignment_expression "pbVar13 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "LAB_00073d48:\n  if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {\n    return -1;\n  }" statement_identifier : (if_statement "if (local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)) {\n    return -1;\n  }" if (parenthesized_expression "(local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8))" ( (binary_expression "local_2c == (byte *)**(undefined4 **)(iVar8 + -0x77c8)" identifier == (cast_expression "(byte *)**(undefined4 **)(iVar8 + -0x77c8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar8 + -0x77c8)" * (pointer_expression "*(undefined4 **)(iVar8 + -0x77c8)" * (cast_expression "(undefined4 **)(iVar8 + -0x77c8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x77c8)" ( (binary_expression "iVar8 + -0x77c8" identifier + number_literal) ))))))) )) (compound_statement "{\n    return -1;\n  }" { (return_statement "return -1;" return number_literal ;) }))) (expression_statement "pcVar18 = *(code **)(iVar8 + -0x7834);" (assignment_expression "pcVar18 = *(code **)(iVar8 + -0x7834)" identifier = (pointer_expression "*(code **)(iVar8 + -0x7834)" * (cast_expression "(code **)(iVar8 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + -0x7834)" ( (binary_expression "iVar8 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = internal_fnmatch;" (assignment_expression "pcVar22 = internal_fnmatch" identifier = identifier) ;) (expression_statement "pbVar13 = local_2c;" (assignment_expression "pbVar13 = local_2c" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar19 = pcVar18 + 0x4b134;" (assignment_expression "pcVar19 = pcVar18 + 0x4b134" identifier = (binary_expression "pcVar18 + 0x4b134" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -4) = pcVar22;" (assignment_expression "*(code **)(puVar20 + -4) = pcVar22" (pointer_expression "*(code **)(puVar20 + -4)" * (cast_expression "(code **)(puVar20 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0xc) = unaff_s7;" (assignment_expression "*(uint *)(puVar20 + -0xc) = unaff_s7" (pointer_expression "*(uint *)(puVar20 + -0xc)" * (cast_expression "(uint *)(puVar20 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x10) = opt;" (assignment_expression "*(int *)(puVar20 + -0x10) = opt" (pointer_expression "*(int *)(puVar20 + -0x10)" * (cast_expression "(int *)(puVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(patternlist **)(puVar20 + -0x14) = unaff_s5;" (assignment_expression "*(patternlist **)(puVar20 + -0x14) = unaff_s5" (pointer_expression "*(patternlist **)(puVar20 + -0x14)" * (cast_expression "(patternlist **)(puVar20 + -0x14)" ( (type_descriptor "patternlist **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x18) = unaff_s4;" (assignment_expression "*(int *)(puVar20 + -0x18) = unaff_s4" (pointer_expression "*(int *)(puVar20 + -0x18)" * (cast_expression "(int *)(puVar20 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar20 + -0x1c) = pattern;" (assignment_expression "*(char **)(puVar20 + -0x1c) = pattern" (pointer_expression "*(char **)(puVar20 + -0x1c)" * (cast_expression "(char **)(puVar20 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x20) = unaff_s2;" (assignment_expression "*(byte **)(puVar20 + -0x20) = unaff_s2" (pointer_expression "*(byte **)(puVar20 + -0x20)" * (cast_expression "(byte **)(puVar20 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(patternlist **)(puVar20 + -0x24) = unaff_s1;" (assignment_expression "*(patternlist **)(puVar20 + -0x24) = unaff_s1" (pointer_expression "*(patternlist **)(puVar20 + -0x24)" * (cast_expression "(patternlist **)(puVar20 + -0x24)" ( (type_descriptor "patternlist **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x28) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x28) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x28)" * (cast_expression "(byte **)(puVar20 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x28)" ( (binary_expression "puVar20 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar20 + -0x158) = pcVar19;" (assignment_expression "*(code **)(puVar20 + -0x158) = pcVar19" (pointer_expression "*(code **)(puVar20 + -0x158)" * (cast_expression "(code **)(puVar20 + -0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(char **)(puVar20 + 0xc) = string_end;" (assignment_expression "*(char **)(puVar20 + 0xc) = string_end" (pointer_expression "*(char **)(puVar20 + 0xc)" * (cast_expression "(char **)(puVar20 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c);" (assignment_expression "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(pcVar18 + 0x4396c)" (pointer_expression "*(undefined4 *)(puVar20 + -0x2c)" * (cast_expression "(undefined4 *)(puVar20 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(pcVar18 + 0x4396c)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x4396c)" * (cast_expression "(undefined4 **)(pcVar18 + 0x4396c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x4396c)" ( (binary_expression "pcVar18 + 0x4396c" identifier + number_literal) )))))) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar13 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar13 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*pbVar13;" (assignment_expression "uVar16 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar5 = (byte *)string;" (assignment_expression "pbVar5 = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar14 = pbVar11;" (assignment_expression "pbVar14 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar16 != 0) {\n    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);\n  }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);\n  }" { (expression_statement "unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10);" (assignment_expression "unaff_s5 = (patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10)" identifier = (cast_expression "(patternlist *)(*(uint *)(puVar20 + 0x10) & 0x10)" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 0x10" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0;" (assignment_expression "*(int *)(puVar20 + -0x144) = *(int *)(pcVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(pcVar18 + 0x43290)" * (cast_expression "(int *)(pcVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x43290)" ( (binary_expression "pcVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30;" (assignment_expression "*(int *)(puVar20 + -0x138) = *(int *)(pcVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar20 + -0x138)" * (cast_expression "(int *)(puVar20 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x138)" ( (binary_expression "puVar20 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(pcVar18 + 0x4371c)" * (cast_expression "(int *)(pcVar18 + 0x4371c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x4371c)" ( (binary_expression "pcVar18 + 0x4371c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424);" (assignment_expression "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(pcVar18 + 0x43424)" (pointer_expression "*(undefined4 *)(puVar20 + -0x140)" * (cast_expression "(undefined4 *)(puVar20 + -0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x140)" ( (binary_expression "puVar20 + -0x140" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(pcVar18 + 0x43424)" * (cast_expression "(undefined4 *)(pcVar18 + 0x43424)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x43424)" ( (binary_expression "pcVar18 + 0x43424" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0;" (assignment_expression "*(int *)(puVar20 + -0x13c) = *(int *)(pcVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar20 + -0x13c)" * (cast_expression "(int *)(puVar20 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x13c)" ( (binary_expression "puVar20 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(pcVar18 + 0x43290)" * (cast_expression "(int *)(pcVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x43290)" ( (binary_expression "pcVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    } while (uVar16 != 0);" do (compound_statement "{\n      if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }\n      if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }\n      uVar21 = 1;\n      if ((byte *)string == pbVar14) goto LAB_00074dd8;\n      if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }\n      uVar21 = 1;\n      if (uVar6 != uVar16) goto LAB_00074dd8;\n      pbVar13 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar13 + 1;\n      uVar16 = (uint)*pbVar13;\n      pbVar14 = pbVar14 + 1;\n    }" { (if_statement "if (unaff_s5 != (patternlist *)0x0) {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }" if (parenthesized_expression "(unaff_s5 != (patternlist *)0x0)" ( (binary_expression "unaff_s5 != (patternlist *)0x0" identifier != (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);\n      }" { (expression_statement "piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();" (assignment_expression "piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(pcVar19 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + -0x7888))()" (parenthesized_expression "(**(code **)(pcVar19 + -0x7888))" ( (pointer_expression "**(code **)(pcVar19 + -0x7888)" * (pointer_expression "*(code **)(pcVar19 + -0x7888)" * (cast_expression "(code **)(pcVar19 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + -0x7888)" ( (binary_expression "pcVar19 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar19 = *(code **)(puVar20 + -0x158);" (assignment_expression "pcVar19 = *(code **)(puVar20 + -0x158)" identifier = (pointer_expression "*(code **)(puVar20 + -0x158)" * (cast_expression "(code **)(puVar20 + -0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3);" (assignment_expression "uVar16 = (uint)*(byte *)(*piVar7 + uVar16 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar7 + uVar16 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar7 + uVar16 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + uVar16 * 4 + 3)" ( (binary_expression "*piVar7 + uVar16 * 4 + 3" (binary_expression "*piVar7 + uVar16 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "uVar16 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (if_statement "if ((uVar16 - 0x21 & 0xff) < 0x3c) {\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }" if (parenthesized_expression "((uVar16 - 0x21 & 0xff) < 0x3c)" ( (binary_expression "(uVar16 - 0x21 & 0xff) < 0x3c" (parenthesized_expression "(uVar16 - 0x21 & 0xff)" ( (binary_expression "uVar16 - 0x21 & 0xff" (binary_expression "uVar16 - 0x21" identifier - number_literal) & number_literal) )) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();\n        return iVar8;\n      }" { comment comment (expression_statement "iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))();" (assignment_expression "iVar8 = (*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))()" identifier = (call_expression "(*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))()" (parenthesized_expression "(*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)))" ( (pointer_expression "*(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4))" * (parenthesized_expression "(pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4))" ( (binary_expression "pcVar19 + *(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4)" ( (binary_expression "*(int *)(puVar20 + -0x144) + (uVar16 - 0x21 & 0xff) * 4" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) + (binary_expression "(uVar16 - 0x21 & 0xff) * 4" (parenthesized_expression "(uVar16 - 0x21 & 0xff)" ( (binary_expression "uVar16 - 0x21 & 0xff" (binary_expression "uVar16 - 0x21" identifier - number_literal) & number_literal) )) * number_literal)) ))))) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) })) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if ((byte *)string == pbVar14) goto LAB_00074dd8;" if (parenthesized_expression "((byte *)string == pbVar14)" ( (binary_expression "(byte *)string == pbVar14" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (patternlist *)0x0) {\n        uVar6 = (uint)*pbVar14;\n      }\n      else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }" if (parenthesized_expression "(unaff_s5 == (patternlist *)0x0)" ( (binary_expression "unaff_s5 == (patternlist *)0x0" identifier == (cast_expression "(patternlist *)0x0" ( (type_descriptor "patternlist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar6 = (uint)*pbVar14;\n      }" { (expression_statement "uVar6 = (uint)*pbVar14;" (assignment_expression "uVar6 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else {\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }" else (compound_statement "{\n        piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();\n        pcVar19 = *(code **)(puVar20 + -0x158);\n        uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);\n      }" { (expression_statement "piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))();" (assignment_expression "piVar7 = (int *)(**(code **)(pcVar19 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(pcVar19 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar19 + -0x7888))()" (parenthesized_expression "(**(code **)(pcVar19 + -0x7888))" ( (pointer_expression "**(code **)(pcVar19 + -0x7888)" * (pointer_expression "*(code **)(pcVar19 + -0x7888)" * (cast_expression "(code **)(pcVar19 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + -0x7888)" ( (binary_expression "pcVar19 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "pcVar19 = *(code **)(puVar20 + -0x158);" (assignment_expression "pcVar19 = *(code **)(puVar20 + -0x158)" identifier = (pointer_expression "*(code **)(puVar20 + -0x158)" * (cast_expression "(code **)(puVar20 + -0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4);" (assignment_expression "uVar6 = *(uint *)(*piVar7 + (uint)*pbVar14 * 4)" identifier = (pointer_expression "*(uint *)(*piVar7 + (uint)*pbVar14 * 4)" * (cast_expression "(uint *)(*piVar7 + (uint)*pbVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + (uint)*pbVar14 * 4)" ( (binary_expression "*piVar7 + (uint)*pbVar14 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "(uint)*pbVar14 * 4" (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) }))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (uVar6 != uVar16) goto LAB_00074dd8;" if (parenthesized_expression "(uVar6 != uVar16)" ( (binary_expression "uVar6 != uVar16" identifier != identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (expression_statement "pbVar13 = *(byte **)(puVar20 + -0x14c);" (assignment_expression "pbVar13 = *(byte **)(puVar20 + -0x14c)" identifier = (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" * (cast_expression "(undefined4 *)(puVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar13 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar13 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*pbVar13;" (assignment_expression "uVar16 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((byte *)string == pbVar14) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }" if (parenthesized_expression "((byte *)string == pbVar14)" ( (binary_expression "(byte *)string == pbVar14" (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n    uVar21 = 0;\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) }) (else_clause "else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }" else (if_statement "if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }" if (parenthesized_expression "((*(uint *)(puVar20 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(puVar20 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 8" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar21 = 1;\n  }" { (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }" else (compound_statement "{\n    uVar21 = (uint)(*pbVar14 != 0x2f);\n  }" { (expression_statement "uVar21 = (uint)(*pbVar14 != 0x2f);" (assignment_expression "uVar21 = (uint)(*pbVar14 != 0x2f)" identifier = (call_expression "(uint)(*pbVar14 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar14 != 0x2f)" ( (binary_expression "*pbVar14 != 0x2f" (pointer_expression "*pbVar14" * identifier) != number_literal) )))) ;) }))))) (labeled_statement "LAB_00074dd8:\n  iVar8 = *(int *)(puVar20 + -0x2c);" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar20 + -0x2c);" (assignment_expression "iVar8 = *(int *)(puVar20 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar20 + -0x2c)" * (cast_expression "(int *)(puVar20 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar8 == **(int **)(pcVar19 + -0x77c8)) {\n    return uVar21;\n  }" if (parenthesized_expression "(iVar8 == **(int **)(pcVar19 + -0x77c8))" ( (binary_expression "iVar8 == **(int **)(pcVar19 + -0x77c8)" identifier == (pointer_expression "**(int **)(pcVar19 + -0x77c8)" * (pointer_expression "*(int **)(pcVar19 + -0x77c8)" * (cast_expression "(int **)(pcVar19 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + -0x77c8)" ( (binary_expression "pcVar19 + -0x77c8" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar21;\n  }" { (return_statement "return uVar21;" return identifier ;) })) (expression_statement "pcVar18 = *(code **)(pcVar19 + -0x7834);" (assignment_expression "pcVar18 = *(code **)(pcVar19 + -0x7834)" identifier = (pointer_expression "*(code **)(pcVar19 + -0x7834)" * (cast_expression "(code **)(pcVar19 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar19 + -0x7834)" ( (binary_expression "pcVar19 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = rpl_fnmatch;" (assignment_expression "pcVar19 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = puVar20 + -0x1d0;" (assignment_expression "puVar4 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -0x174) = pcVar19;" (assignment_expression "*(code **)(puVar20 + -0x174) = pcVar19" (pointer_expression "*(code **)(puVar20 + -0x174)" * (cast_expression "(code **)(puVar20 + -0x174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x174)" ( (binary_expression "puVar20 + -0x174" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x178) = uVar21;" (assignment_expression "*(uint *)(puVar20 + -0x178) = uVar21" (pointer_expression "*(uint *)(puVar20 + -0x178)" * (cast_expression "(uint *)(puVar20 + -0x178)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x178)" ( (binary_expression "puVar20 + -0x178" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar20 + -0x17c) = opt;" (assignment_expression "*(int *)(puVar20 + -0x17c) = opt" (pointer_expression "*(int *)(puVar20 + -0x17c)" * (cast_expression "(int *)(puVar20 + -0x17c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x17c)" ( (binary_expression "puVar20 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(patternlist **)(puVar20 + -0x180) = unaff_s5;" (assignment_expression "*(patternlist **)(puVar20 + -0x180) = unaff_s5" (pointer_expression "*(patternlist **)(puVar20 + -0x180)" * (cast_expression "(patternlist **)(puVar20 + -0x180)" ( (type_descriptor "patternlist **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x180)" ( (binary_expression "puVar20 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x184) = uVar16;" (assignment_expression "*(uint *)(puVar20 + -0x184) = uVar16" (pointer_expression "*(uint *)(puVar20 + -0x184)" * (cast_expression "(uint *)(puVar20 + -0x184)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x184)" ( (binary_expression "puVar20 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x188) = pbVar14;" (assignment_expression "*(byte **)(puVar20 + -0x188) = pbVar14" (pointer_expression "*(byte **)(puVar20 + -0x188)" * (cast_expression "(byte **)(puVar20 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x188)" ( (binary_expression "puVar20 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x18c) = pbVar13;" (assignment_expression "*(byte **)(puVar20 + -0x18c) = pbVar13" (pointer_expression "*(byte **)(puVar20 + -0x18c)" * (cast_expression "(byte **)(puVar20 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18c)" ( (binary_expression "puVar20 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(patternlist **)(puVar20 + -400) = unaff_s1;" (assignment_expression "*(patternlist **)(puVar20 + -400) = unaff_s1" (pointer_expression "*(patternlist **)(puVar20 + -400)" * (cast_expression "(patternlist **)(puVar20 + -400)" ( (type_descriptor "patternlist **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -400)" ( (binary_expression "puVar20 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x194) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x194) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x194)" * (cast_expression "(byte **)(puVar20 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x194)" ( (binary_expression "puVar20 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438;" (assignment_expression "*(code **)(puVar20 + -0x1b8) = pcVar18 + 0x4a438" (pointer_expression "*(code **)(puVar20 + -0x1b8)" * (cast_expression "(code **)(puVar20 + -0x1b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) = (binary_expression "pcVar18 + 0x4a438" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x1ac) = iVar8;" (assignment_expression "*(int *)(puVar20 + -0x1ac) = iVar8" (pointer_expression "*(int *)(puVar20 + -0x1ac)" * (cast_expression "(int *)(puVar20 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x1b0) = pbVar11;" (assignment_expression "*(byte **)(puVar20 + -0x1b0) = pbVar11" (pointer_expression "*(byte **)(puVar20 + -0x1b0)" * (cast_expression "(byte **)(puVar20 + -0x1b0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70);" (assignment_expression "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar18 + 0x42c70)" (pointer_expression "*(undefined4 *)(puVar20 + -0x19c)" * (cast_expression "(undefined4 *)(puVar20 + -0x19c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(pcVar18 + 0x42c70)" * (pointer_expression "*(undefined4 **)(pcVar18 + 0x42c70)" * (cast_expression "(undefined4 **)(pcVar18 + 0x42c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x42c70)" ( (binary_expression "pcVar18 + 0x42c70" identifier + number_literal) )))))) ;) (expression_statement "iVar8 = (**(code **)(pcVar18 + 0x42e44))();" (assignment_expression "iVar8 = (**(code **)(pcVar18 + 0x42e44))()" identifier = (call_expression "(**(code **)(pcVar18 + 0x42e44))()" (parenthesized_expression "(**(code **)(pcVar18 + 0x42e44))" ( (pointer_expression "**(code **)(pcVar18 + 0x42e44)" * (pointer_expression "*(code **)(pcVar18 + 0x42e44)" * (cast_expression "(code **)(pcVar18 + 0x42e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x42e44)" ( (binary_expression "pcVar18 + 0x42e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar3 = *(int *)(puVar20 + -0x1b8);\n    uVar16 = iVar8 + 1;\n    if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar3 = *(int *)(puVar20 + -0x1b8);\n    uVar16 = iVar8 + 1;\n    if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)(puVar20 + -0x1a4) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a4) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a4)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a4)" ( (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1a0) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a0) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a0)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a0)" ( (binary_expression "puVar20 + -0x1a0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0);" (assignment_expression "iVar8 = (**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0)" identifier = (call_expression "(**(code **)(iVar3 + -0x765c))(0,puVar20 + -0x1ac,0)" (parenthesized_expression "(**(code **)(iVar3 + -0x765c))" ( (pointer_expression "**(code **)(iVar3 + -0x765c)" * (pointer_expression "*(code **)(iVar3 + -0x765c)" * (cast_expression "(code **)(iVar3 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x765c)" ( (binary_expression "iVar3 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,puVar20 + -0x1ac,0)" ( number_literal , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = iVar8 + 1;" (assignment_expression "uVar16 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 != 0) {\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      string_end_00 = (wchar_t *)0x0;\n      string_00 = (wchar_t *)(puVar20 + -0x1b0);\n      iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);\n      iVar3 = *(int *)(puVar20 + -0x1b8);\n      iVar15 = iVar8 + 1;\n      if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" { (expression_statement "string_end_00 = (wchar_t *)0x0;" (assignment_expression "string_end_00 = (wchar_t *)0x0" identifier = (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "string_00 = (wchar_t *)(puVar20 + -0x1b0);" (assignment_expression "string_00 = (wchar_t *)(puVar20 + -0x1b0)" identifier = (cast_expression "(wchar_t *)(puVar20 + -0x1b0)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) )))) ;) (expression_statement "iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4);" (assignment_expression "iVar8 = (**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4)" identifier = (call_expression "(**(code **)(iVar3 + -0x765c))(0,string_00,0,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar3 + -0x765c))" ( (pointer_expression "**(code **)(iVar3 + -0x765c)" * (pointer_expression "*(code **)(iVar3 + -0x765c)" * (cast_expression "(code **)(iVar3 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x765c)" ( (binary_expression "iVar3 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,string_00,0,puVar20 + -0x1a4)" ( number_literal , identifier , number_literal , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = iVar8 + 1;" (assignment_expression "iVar15 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar15 != 0) {\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar16 + iVar15;\n        if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" { (expression_statement "uVar21 = uVar16 + iVar15;" (assignment_expression "uVar21 = uVar16 + iVar15" identifier = (binary_expression "uVar16 + iVar15" identifier + identifier)) ;) (if_statement "if ((uVar21 < uVar16) || (0x3fffffff < uVar21)) {\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }\n        else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "((uVar21 < uVar16) || (0x3fffffff < uVar21))" ( (binary_expression "(uVar21 < uVar16) || (0x3fffffff < uVar21)" (parenthesized_expression "(uVar21 < uVar16)" ( (binary_expression "uVar21 < uVar16" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar21)" ( (binary_expression "0x3fffffff < uVar21" number_literal < identifier) ))) )) (compound_statement "{\n          puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          *puVar9 = 0xc;\n          iVar8 = -1;\n        }" { (expression_statement "puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(iVar3 + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar3 + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + -0x7578))()" (parenthesized_expression "(**(code **)(iVar3 + -0x7578))" ( (pointer_expression "**(code **)(iVar3 + -0x7578)" * (pointer_expression "*(code **)(iVar3 + -0x7578)" * (cast_expression "(code **)(iVar3 + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7578)" ( (binary_expression "iVar3 + -0x7578" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = 0xc;" (assignment_expression "*puVar9 = 0xc" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) }) (else_clause "else if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }" else (if_statement "if (uVar21 < 2000) {\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }\n        else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "(uVar21 < 2000)" ( (binary_expression "uVar21 < 2000" identifier < number_literal) )) (compound_statement "{\n          iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);\n          string_00 = pwVar17 + uVar16;\n          (**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;\n          string_end_00 = string_00 + iVar8;\n          iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));\n          iVar3 = *(int *)(puVar20 + -0x1b8);\n          puVar4 = puVar20 + iVar2 + -0x1d0;\n        }" { (expression_statement "iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(uVar21 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar21 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar21 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar21 * 4 + 7 & 0xfffffff8" (binary_expression "uVar21 * 4 + 7" (binary_expression "uVar21 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8);" (assignment_expression "pwVar17 = (wchar_t *)(puVar20 + iVar2 + -0x1b8)" identifier = (cast_expression "(wchar_t *)(puVar20 + iVar2 + -0x1b8)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + -0x1b8)" ( (binary_expression "puVar20 + iVar2 + -0x1b8" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) ;) (expression_statement "string_00 = pwVar17 + uVar16;" (assignment_expression "string_00 = pwVar17 + uVar16" identifier = (binary_expression "pwVar17 + uVar16" identifier + identifier)) ;) (expression_statement "(**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);" (call_expression "(**(code **)(iVar3 + -0x765c))(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar3 + -0x765c))" ( (pointer_expression "**(code **)(iVar3 + -0x765c)" * (pointer_expression "*(code **)(iVar3 + -0x765c)" * (cast_expression "(code **)(iVar3 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x765c)" ( (binary_expression "iVar3 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5;" (assignment_expression "*(byte **)(puVar20 + iVar2 + -0x1c0) = pbVar5" (pointer_expression "*(byte **)(puVar20 + iVar2 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + iVar2 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + iVar2 + -0x1c0)" ( (binary_expression "puVar20 + iVar2 + -0x1c0" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "string_end_00 = string_00 + iVar8;" (assignment_expression "string_end_00 = string_00 + iVar8" identifier = (binary_expression "string_00 + iVar8" identifier + identifier)) ;) (expression_statement "iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0));" (assignment_expression "iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0))" identifier = (call_expression "internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0))" identifier (argument_list "(pwVar17,string_00,string_end_00,\n                                    SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                    *(int *)(puVar20 + iVar2 + -0x1c0))" ( identifier , identifier , identifier , (call_expression "SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar5 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar5 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar5 << 0x1d)" ( (binary_expression "(int)pbVar5 << 0x1d" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar20 + iVar2 + -0x1c0)" * (cast_expression "(int *)(puVar20 + iVar2 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + -0x1c0)" ( (binary_expression "puVar20 + iVar2 + -0x1c0" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar20 + iVar2 + -0x1d0;" (assignment_expression "puVar4 = puVar20 + iVar2 + -0x1d0" identifier = (binary_expression "puVar20 + iVar2 + -0x1d0" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }" else (compound_statement "{\n          pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);\n          if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }\n        }" { (expression_statement "pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4);" (assignment_expression "pwVar17 = (wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4)" identifier = (cast_expression "(wchar_t *)(**(code **)(iVar3 + -0x7820))(uVar21 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar3 + -0x7820))(uVar21 * 4)" (parenthesized_expression "(**(code **)(iVar3 + -0x7820))" ( (pointer_expression "**(code **)(iVar3 + -0x7820)" * (pointer_expression "*(code **)(iVar3 + -0x7820)" * (cast_expression "(code **)(iVar3 + -0x7820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7820)" ( (binary_expression "iVar3 + -0x7820" identifier + number_literal) ))))) )) (argument_list "(uVar21 * 4)" ( (binary_expression "uVar21 * 4" identifier * number_literal) ))))) ;) (if_statement "if (pwVar17 == (wchar_t *)0x0) {\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }\n          else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }" if (parenthesized_expression "(pwVar17 == (wchar_t *)0x0)" ( (binary_expression "pwVar17 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            *puVar9 = 0xc;\n            iVar8 = -1;\n            puVar4 = puVar20 + -0x1d0;\n          }" { (expression_statement "puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x7578" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar9 = 0xc;" (assignment_expression "*puVar9 = 0xc" (pointer_expression "*puVar9" * identifier) = number_literal) ;) (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) (expression_statement "puVar4 = puVar20 + -0x1d0;" (assignment_expression "puVar4 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }) (else_clause "else {\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }" else (compound_statement "{\n            string_00 = pwVar17 + uVar16;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar5;\n            string_end_00 = string_00 + iVar8;\n            iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);\n            iVar3 = *(int *)(puVar20 + -0x1b8);\n            puVar4 = puVar20 + -0x1d0;\n          }" { (expression_statement "string_00 = pwVar17 + uVar16;" (assignment_expression "string_00 = pwVar17 + uVar16" identifier = (binary_expression "pwVar17 + uVar16" identifier + identifier)) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pwVar17,puVar20 + -0x1ac,uVar16,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(string_00,puVar20 + -0x1b0,iVar15,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar5;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar5" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "string_end_00 = string_00 + iVar8;" (assignment_expression "string_end_00 = string_00 + iVar8" identifier = (binary_expression "string_00 + iVar8" identifier + identifier)) ;) (expression_statement "iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0));" (assignment_expression "iVar8 = internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0))" identifier = (call_expression "internal_fnwmatch(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0))" identifier (argument_list "(pwVar17,string_00,string_end_00,\n                                      SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),\n                                      *(int *)(puVar20 + -0x1c0))" ( identifier , identifier , identifier , (call_expression "SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar5 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar5 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar5 << 0x1d)" ( (binary_expression "(int)pbVar5 << 0x1d" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar20 + -0x1c0)" * (cast_expression "(int *)(puVar20 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(pwVar17)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x76fc" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pwVar17)" ( identifier ))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar20 + -0x1d0;" (assignment_expression "puVar4 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }))) }))))) (goto_statement "goto LAB_000750b0;" goto statement_identifier ;) })) })) })) (expression_statement "string_00 = *(wchar_t **)(puVar20 + -0x1b0);" (assignment_expression "string_00 = *(wchar_t **)(puVar20 + -0x1b0)" identifier = (pointer_expression "*(wchar_t **)(puVar20 + -0x1b0)" * (cast_expression "(wchar_t **)(puVar20 + -0x1b0)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = (**(code **)(iVar3 + -0x779c))(string_00);" (assignment_expression "iVar8 = (**(code **)(iVar3 + -0x779c))(string_00)" identifier = (call_expression "(**(code **)(iVar3 + -0x779c))(string_00)" (parenthesized_expression "(**(code **)(iVar3 + -0x779c))" ( (pointer_expression "**(code **)(iVar3 + -0x779c)" * (pointer_expression "*(code **)(iVar3 + -0x779c)" * (cast_expression "(code **)(iVar3 + -0x779c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x779c)" ( (binary_expression "iVar3 + -0x779c" identifier + number_literal) ))))) )) (argument_list "(string_00)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar5;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar5" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "string_end_00 = (wchar_t *)((int)string_00 + iVar8);" (assignment_expression "string_end_00 = (wchar_t *)((int)string_00 + iVar8)" identifier = (cast_expression "(wchar_t *)((int)string_00 + iVar8)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string_00 + iVar8)" ( (binary_expression "(int)string_00 + iVar8" (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0));" (assignment_expression "iVar8 = internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0))" identifier = (call_expression "internal_fnmatch(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0))" identifier (argument_list "(*(char **)(puVar20 + -0x1ac),(char *)string_00,(char *)string_end_00,\n                           SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0),*(int *)(puVar20 + -0x1c0))" ( (pointer_expression "*(char **)(puVar20 + -0x1ac)" * (cast_expression "(char **)(puVar20 + -0x1ac)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) , (cast_expression "(char *)string_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)string_end_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "SUB41((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" identifier (argument_list "((uint)((int)pbVar5 << 0x1d) >> 0x1f,0)" ( (binary_expression "(uint)((int)pbVar5 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar5 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar5 << 0x1d)" ( (binary_expression "(int)pbVar5 << 0x1d" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) , number_literal ))) , (pointer_expression "*(int *)(puVar20 + -0x1c0)" * (cast_expression "(int *)(puVar20 + -0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) )))) ;) (expression_statement "iVar3 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar3 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = puVar20 + -0x1d0;" (assignment_expression "puVar4 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (labeled_statement "LAB_000750b0:\n  fp = *(FILE **)(puVar20 + -0x19c);" statement_identifier : (expression_statement "fp = *(FILE **)(puVar20 + -0x19c);" (assignment_expression "fp = *(FILE **)(puVar20 + -0x19c)" identifier = (pointer_expression "*(FILE **)(puVar20 + -0x19c)" * (cast_expression "(FILE **)(puVar20 + -0x19c)" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) ))))) ;)) (if_statement "if (fp != (FILE *)**(int **)(iVar3 + -0x77c8)) {\n    pcVar18 = *(code **)(iVar3 + -0x7834);\n    pcVar19 = rpl_fseek;\n    (*pcVar18)();\n    *(code **)(puVar4 + -4) = pcVar19;\n    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;\n    *(wchar_t **)(puVar4 + -0x18) = string_end_00;\n    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);\n    return iVar8;\n  }" if (parenthesized_expression "(fp != (FILE *)**(int **)(iVar3 + -0x77c8))" ( (binary_expression "fp != (FILE *)**(int **)(iVar3 + -0x77c8)" identifier != (cast_expression "(FILE *)**(int **)(iVar3 + -0x77c8)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(iVar3 + -0x77c8)" * (pointer_expression "*(int **)(iVar3 + -0x77c8)" * (cast_expression "(int **)(iVar3 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x77c8)" ( (binary_expression "iVar3 + -0x77c8" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar18 = *(code **)(iVar3 + -0x7834);\n    pcVar19 = rpl_fseek;\n    (*pcVar18)();\n    *(code **)(puVar4 + -4) = pcVar19;\n    *(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;\n    *(wchar_t **)(puVar4 + -0x18) = string_end_00;\n    iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);\n    return iVar8;\n  }" { (expression_statement "pcVar18 = *(code **)(iVar3 + -0x7834);" (assignment_expression "pcVar18 = *(code **)(iVar3 + -0x7834)" identifier = (pointer_expression "*(code **)(iVar3 + -0x7834)" * (cast_expression "(code **)(iVar3 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + -0x7834)" ( (binary_expression "iVar3 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar19 = rpl_fseek;" (assignment_expression "pcVar19 = rpl_fseek" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar4 + -4) = pcVar19;" (assignment_expression "*(code **)(puVar4 + -4) = pcVar19" (pointer_expression "*(code **)(puVar4 + -4)" * (cast_expression "(code **)(puVar4 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -4)" ( (binary_expression "puVar4 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130;" (assignment_expression "*(code **)(puVar4 + -0x10) = pcVar18 + 0x4a130" (pointer_expression "*(code **)(puVar4 + -0x10)" * (cast_expression "(code **)(puVar4 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x10)" ( (binary_expression "puVar4 + -0x10" identifier + number_literal) )))) = (binary_expression "pcVar18 + 0x4a130" identifier + number_literal)) ;) (expression_statement "*(wchar_t **)(puVar4 + -0x18) = string_end_00;" (assignment_expression "*(wchar_t **)(puVar4 + -0x18) = string_end_00" (pointer_expression "*(wchar_t **)(puVar4 + -0x18)" * (cast_expression "(wchar_t **)(puVar4 + -0x18)" ( (type_descriptor "wchar_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18)" ( (binary_expression "puVar4 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00);" (assignment_expression "iVar8 = rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00)" identifier = (call_expression "rpl_fseeko(fp,*(off_t *)(puVar4 + -0x18),(int)string_00)" identifier (argument_list "(fp,*(off_t *)(puVar4 + -0x18),(int)string_00)" ( identifier , (pointer_expression "*(off_t *)(puVar4 + -0x18)" * (cast_expression "(off_t *)(puVar4 + -0x18)" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18)" ( (binary_expression "puVar4 + -0x18" identifier + number_literal) )))) , (cast_expression "(int)string_00" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (return_statement "return iVar8;" return identifier ;) })) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit "uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}\n\n" (function_definition "uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" type_identifier (function_declarator "FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" identifier (parameter_list "(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" ( (parameter_declaration "uint param_1" type_identifier 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 "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined1 auStack_68 [24];" type_identifier (array_declarator "auStack_68 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" * (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" identifier = (cast_expression "(byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000b7c94)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" ( (pointer_expression "*(code *)PTR_strlen_000b7c94" * (cast_expression "(code *)PTR_strlen_000b7c94" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "puVar18 = PTR_DAT_000b7720;" (assignment_expression "puVar18 = PTR_DAT_000b7720" identifier = identifier) ;) (expression_statement "iVar2 = (int)(char)param_2[1];" (assignment_expression "iVar2 = (int)(char)param_2[1]" identifier = (cast_expression "(int)(char)param_2[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (if_statement "if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" { (expression_statement "unaff_s2 = param_2 + 1;" (assignment_expression "unaff_s2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = (undefined4 *)0x0;" (assignment_expression "unaff_s1 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = PTR_DAT_000b758c + 0x1ad0;" (assignment_expression "puVar7 = PTR_DAT_000b758c + 0x1ad0" identifier = (binary_expression "PTR_DAT_000b758c + 0x1ad0" identifier + number_literal)) ;) (expression_statement "unaff_s7 = (uint)(param_1 - 0x3f < 2);" (assignment_expression "unaff_s7 = (uint)(param_1 - 0x3f < 2)" identifier = (call_expression "(uint)(param_1 - 0x3f < 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 - 0x3f < 2)" ( (binary_expression "param_1 - 0x3f < 2" (binary_expression "param_1 - 0x3f" identifier - number_literal) < number_literal) )))) ;) (expression_statement "pbVar12 = unaff_s2;" (assignment_expression "pbVar12 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" identifier = identifier) ;) (labeled_statement "LAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" statement_identifier : (do_statement "do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" do (compound_statement "{\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    }" { (expression_statement "unaff_s4 = puVar18;" (assignment_expression "unaff_s4 = puVar18" identifier = identifier) ;) (if_statement "if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" if (parenthesized_expression "(iVar2 == 0x5b)" ( (binary_expression "iVar2 == 0x5b" identifier == number_literal) )) (compound_statement "{\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }" { (if_statement "if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" if (parenthesized_expression "(*(int *)(puVar18 + -0x2c00) == 0)" ( (binary_expression "*(int *)(puVar18 + -0x2c00) == 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" * (cast_expression "(int *)(puVar18 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" { (expression_statement "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7)" identifier = (call_expression "(*(code *)PTR_getenv_000b7dec)(puVar7)" (parenthesized_expression "(*(code *)PTR_getenv_000b7dec)" ( (pointer_expression "*(code *)PTR_getenv_000b7dec" * (cast_expression "(code *)PTR_getenv_000b7dec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7)" ( identifier )))) ;) (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n            uVar8 = 1;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar8 = 1;\n          }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined4 *)(puVar18 + -0x2c00) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c00) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c00)" * (cast_expression "(undefined4 *)(puVar18 + -0x2c00)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }" if (parenthesized_expression "((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))))" ( (binary_expression "(pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" (parenthesized_expression "(pbVar12[1] == 0x21)" ( (binary_expression "pbVar12[1] == 0x21" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" ( (parenthesized_expression "(pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))" ( (comma_expression "pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (assignment_expression "pbVar3 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) , (binary_expression "*(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (binary_expression "*(int *)(puVar18 + -0x2c00) < 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" * (cast_expression "(int *)(puVar18 + -0x2c00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -0x2c00)" ( (binary_expression "puVar18 + -0x2c00" identifier + number_literal) )))) < number_literal) && (parenthesized_expression "(pbVar12[1] == 0x5e)" ( (binary_expression "pbVar12[1] == 0x5e" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n          pbVar3 = pbVar12 + 2;\n        }" { (expression_statement "pbVar3 = pbVar12 + 2;" (assignment_expression "pbVar3 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar12 = pbVar3;" (assignment_expression "pbVar12 = pbVar3" identifier = identifier) ;) (if_statement "if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }" if (parenthesized_expression "(*pbVar12 == 0x5d)" ( (binary_expression "*pbVar12 == 0x5d" (pointer_expression "*pbVar12" * identifier) == number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) })) (while_statement "while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" { (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0x5d) break;" if (parenthesized_expression "(bVar1 == 0x5d)" ( (binary_expression "bVar1 == 0x5d" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (bVar1 == 0) goto switchD_00073e7c_caseD_20;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto switchD_00073e7c_caseD_20;" goto statement_identifier ;)) })) }) (else_clause "else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" else (compound_statement "{\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" { (expression_statement "puVar6 = unaff_s1;" (assignment_expression "puVar6 = unaff_s1" identifier = identifier) ;) (if_statement "if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" if (parenthesized_expression "(((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0))" ( (binary_expression "((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" (parenthesized_expression "((iVar2 - 0x21U & 0xff) < 0x20)" ( (binary_expression "(iVar2 - 0x21U & 0xff) < 0x20" (parenthesized_expression "(iVar2 - 0x21U & 0xff)" ( (binary_expression "iVar2 - 0x21U & 0xff" (binary_expression "iVar2 - 0x21U" identifier - number_literal) & number_literal) )) < number_literal) )) && (parenthesized_expression "((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" ( (binary_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0" (parenthesized_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1)" ( (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1" (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f)" number_literal >> (parenthesized_expression "(iVar2 - 0x21U & 0x1f)" ( (binary_expression "iVar2 - 0x21U & 0x1f" (binary_expression "iVar2 - 0x21U" identifier - number_literal) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }" { (if_statement "if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" if (parenthesized_expression "(pbVar12[1] == 0x28)" ( (binary_expression "pbVar12[1] == 0x28" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" { (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + 1)" ( (binary_expression "(int)unaff_s1 + 1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" identifier = (cast_expression "(int)(char)pbVar12[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar12[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000742a0;" goto statement_identifier ;) })) }) (else_clause "else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" else (compound_statement "{\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" { (expression_statement "unaff_s0 = pbVar12;" (assignment_expression "unaff_s0 = pbVar12" identifier = identifier) ;) (if_statement "if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "(iVar2 == 0x29)" ( (binary_expression "iVar2 == 0x29" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }" { (expression_statement "puVar6 = (undefined4 *)((int)unaff_s1 + -1);" (assignment_expression "puVar6 = (undefined4 *)((int)unaff_s1 + -1)" identifier = (cast_expression "(undefined4 *)((int)unaff_s1 + -1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s1 + -1)" ( (binary_expression "(int)unaff_s1 + -1" (cast_expression "(int)unaff_s1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" if (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" ( (binary_expression "unaff_s1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" { (if_statement "if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" if (parenthesized_expression "(1 < param_1 - 0x3f)" ( (binary_expression "1 < param_1 - 0x3f" number_literal < (binary_expression "param_1 - 0x3f" identifier - number_literal)) )) (compound_statement "{\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" { (expression_statement "local_48 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "local_48 = pbVar12 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar12 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" identifier = (binary_expression "pbVar12 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\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                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }" { (expression_statement "iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((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 "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + 0x18)" ( (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) ;) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" identifier = identifier) ;) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" ( (pointer_expression "*(code *)PTR_mempcpy_000b7c88" * (cast_expression "(code *)PTR_mempcpy_000b7c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20 + iVar2 + 0x1c)" ( (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*unaff_s1 = 0;" (assignment_expression "*unaff_s1 = 0" (pointer_expression "*unaff_s1" * identifier) = number_literal) ;) (expression_statement "*local_34 = unaff_s1;" (assignment_expression "*local_34 = unaff_s1" (pointer_expression "*local_34" * identifier) = identifier) ;) (expression_statement "param_1 = param_1 - 0x21;" (assignment_expression "param_1 = param_1 - 0x21" identifier = (binary_expression "param_1 - 0x21" identifier - number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" identifier = (binary_expression "puVar20 + iVar2" identifier + identifier)) ;) (if_statement "if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" if (parenthesized_expression "(param_1 < 0x20)" ( (binary_expression "param_1 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" { (expression_statement "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;" (assignment_expression "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" ( (binary_expression "&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" * (cast_expression "(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" ( (binary_expression "PTR_DAT_000b758c + param_1 * 4 + 0x1c50" (binary_expression "PTR_DAT_000b758c + param_1 * 4" identifier + (binary_expression "param_1 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) })) (break_statement "break;" break ;) })) }) (else_clause "else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" else (if_statement "if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" if (parenthesized_expression "((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0))" ( (binary_expression "(iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)" (parenthesized_expression "(iVar2 == 0x7c)" ( (binary_expression "iVar2 == 0x7c" identifier == number_literal) )) && (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" ( (binary_expression "unaff_s1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" { (expression_statement "pbVar3 = local_48;" (assignment_expression "pbVar3 = local_48" identifier = identifier) ;) (if_statement "if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" if (parenthesized_expression "(unaff_s7 == 0)" ( (binary_expression "unaff_s7 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" { (expression_statement "pbVar3 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "pbVar3 = pbVar12 + (1 - (int)unaff_s2)" identifier = (binary_expression "pbVar12 + (1 - (int)unaff_s2)" identifier + (parenthesized_expression "(1 - (int)unaff_s2)" ( (binary_expression "1 - (int)unaff_s2" number_literal - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" identifier = (binary_expression "pbVar12 + -(int)unaff_s2" identifier + (unary_expression "-(int)unaff_s2" - (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;" if (parenthesized_expression "(0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4)" ( (binary_expression "0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4" number_literal < (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar3 + 7)" ( (binary_expression "pbVar3 + 7" identifier + number_literal) ))) & number_literal) )) - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" identifier = (unary_expression "-(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" - (parenthesized_expression "(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" ( (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" ( (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar3 + 7)" ( (binary_expression "pbVar3 + 7" identifier + number_literal) ))) & number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18)" identifier = (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + iVar2 + 0x18)" ( (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" ( (pointer_expression "*(code *)PTR_mempcpy_000b7c88" * (cast_expression "(code *)PTR_mempcpy_000b7c88" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar20 + iVar2 + 0x1c)" ( (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" identifier + identifier) + number_literal) ))))) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "*unaff_s5 = 0;" (assignment_expression "*unaff_s5 = 0" (pointer_expression "*unaff_s5" * identifier) = number_literal) ;) (expression_statement "*local_34 = unaff_s5;" (assignment_expression "*local_34 = unaff_s5" (pointer_expression "*local_34" * identifier) = identifier) ;) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar12 + 1;" (assignment_expression "unaff_s2 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" identifier = (binary_expression "puVar20 + iVar2" identifier + identifier)) ;) (expression_statement "local_34 = unaff_s5;" (assignment_expression "local_34 = unaff_s5" identifier = identifier) ;) })))) }))) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s1 = puVar6;" (assignment_expression "unaff_s1 = puVar6" identifier = identifier) ;) }))) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" identifier = (cast_expression "(int)(char)pbVar12[1]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)pbVar12[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ])))) ;) (expression_statement "pbVar12 = unaff_s0;" (assignment_expression "pbVar12 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;)) })) (labeled_statement "switchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" statement_identifier : (if_statement "if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" if (parenthesized_expression "(local_2c == *(byte **)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_2c == *(byte **)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" * (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" ( (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 "pcVar22 = FUN_000742fc;" (assignment_expression "pcVar22 = FUN_000742fc" identifier = identifier) ;) (expression_statement "pbVar12 = local_2c;" (assignment_expression "pbVar12 = local_2c" identifier = identifier) ;) (expression_statement "puVar18 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar18 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = puVar18 + 0x4b134;" (assignment_expression "puVar7 = puVar18 + 0x4b134" identifier = (binary_expression "puVar18 + 0x4b134" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -4) = pcVar22;" (assignment_expression "*(code **)(puVar20 + -4) = pcVar22" (pointer_expression "*(code **)(puVar20 + -4)" * (cast_expression "(code **)(puVar20 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -4)" ( (binary_expression "puVar20 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar20 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar20 + -8)" * (cast_expression "(undefined1 **)(puVar20 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -8)" ( (binary_expression "puVar20 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0xc) = unaff_s7;" (assignment_expression "*(uint *)(puVar20 + -0xc) = unaff_s7" (pointer_expression "*(uint *)(puVar20 + -0xc)" * (cast_expression "(uint *)(puVar20 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0xc)" ( (binary_expression "puVar20 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x10) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x10) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x10)" * (cast_expression "(uint *)(puVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x10)" ( (binary_expression "puVar20 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x14)" * (cast_expression "(undefined4 **)(puVar20 + -0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14)" ( (binary_expression "puVar20 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(puVar20 + -0x18)" * (cast_expression "(undefined **)(puVar20 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18)" ( (binary_expression "puVar20 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x1c) = param_2;" (assignment_expression "*(byte **)(puVar20 + -0x1c) = param_2" (pointer_expression "*(byte **)(puVar20 + -0x1c)" * (cast_expression "(byte **)(puVar20 + -0x1c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c)" ( (binary_expression "puVar20 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x20) = unaff_s2;" (assignment_expression "*(byte **)(puVar20 + -0x20) = unaff_s2" (pointer_expression "*(byte **)(puVar20 + -0x20)" * (cast_expression "(byte **)(puVar20 + -0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x20)" ( (binary_expression "puVar20 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x24) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -0x24) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -0x24)" * (cast_expression "(undefined4 **)(puVar20 + -0x24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x24)" ( (binary_expression "puVar20 + -0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x28) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x28) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x28)" * (cast_expression "(byte **)(puVar20 + -0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x28)" ( (binary_expression "puVar20 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar20 + -0x158) = puVar7;" (assignment_expression "*(undefined **)(puVar20 + -0x158) = puVar7" (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" * (cast_expression "(undefined4 *)(puVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);" (assignment_expression "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c)" (pointer_expression "*(undefined4 *)(puVar20 + -0x2c)" * (cast_expression "(undefined4 *)(puVar20 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(puVar18 + 0x4396c)" * (pointer_expression "*(undefined4 **)(puVar18 + 0x4396c)" * (cast_expression "(undefined4 **)(puVar18 + 0x4396c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x4396c)" ( (binary_expression "puVar18 + 0x4396c" identifier + number_literal) )))))) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar3 = param_3;" (assignment_expression "pbVar3 = param_3" identifier = identifier) ;) (expression_statement "pbVar13 = pbVar9;" (assignment_expression "pbVar13 = pbVar9" identifier = identifier) ;) (if_statement "if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);" (assignment_expression "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" identifier = (cast_expression "(undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 0x10)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 0x10" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;" (assignment_expression "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar18 + 0x43290)" * (cast_expression "(int *)(puVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43290)" ( (binary_expression "puVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;" (assignment_expression "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar20 + -0x138)" * (cast_expression "(int *)(puVar20 + -0x138)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x138)" ( (binary_expression "puVar20 + -0x138" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar18 + 0x4371c)" * (cast_expression "(int *)(puVar18 + 0x4371c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x4371c)" ( (binary_expression "puVar18 + 0x4371c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);" (assignment_expression "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424)" (pointer_expression "*(undefined4 *)(puVar20 + -0x140)" * (cast_expression "(undefined4 *)(puVar20 + -0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x140)" ( (binary_expression "puVar20 + -0x140" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar18 + 0x43424)" * (cast_expression "(undefined4 *)(puVar18 + 0x43424)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43424)" ( (binary_expression "puVar18 + 0x43424" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;" (assignment_expression "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar20 + -0x13c)" * (cast_expression "(int *)(puVar20 + -0x13c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x13c)" ( (binary_expression "puVar20 + -0x13c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar18 + 0x43290)" * (cast_expression "(int *)(puVar18 + 0x43290)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x43290)" ( (binary_expression "puVar18 + 0x43290" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);" do (compound_statement "{\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    }" { (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" ( (pointer_expression "**(code **)(puVar7 + -0x7888)" * (pointer_expression "*(code **)(puVar7 + -0x7888)" * (cast_expression "(code **)(puVar7 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7888)" ( (binary_expression "puVar7 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" identifier = (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);" (assignment_expression "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" identifier = (binary_expression "(uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*piVar5 + uVar14 * 4 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar14 * 4 + 3)" ( (binary_expression "*piVar5 + uVar14 * 4 + 3" (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar14 * 4" identifier * number_literal)) + number_literal) ))))) ;) })) (if_statement "if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" if (parenthesized_expression "((uVar14 - 0x21 & 0xff) < 0x3c)" ( (binary_expression "(uVar14 - 0x21 & 0xff) < 0x3c" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" ( (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" identifier - number_literal) & number_literal) )) < number_literal) )) (compound_statement "{\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" { (expression_statement "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();" (assignment_expression "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" identifier = (call_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))" ( (pointer_expression "*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" * (cast_expression "(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" ( (binary_expression "puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" * (cast_expression "(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" ( (binary_expression "*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4" (pointer_expression "*(int *)(puVar20 + -0x144)" * (cast_expression "(int *)(puVar20 + -0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x144)" ( (binary_expression "puVar20 + -0x144" identifier + number_literal) )))) + (binary_expression "(uVar14 - 0x21 & 0xff) * 4" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" ( (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" identifier - number_literal) & number_literal) )) * number_literal)) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) })) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (param_3 == pbVar13) goto LAB_00074dd8;" if (parenthesized_expression "(param_3 == pbVar13)" ( (binary_expression "param_3 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (if_statement "if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" if (parenthesized_expression "(unaff_s5 == (undefined4 *)0x0)" ( (binary_expression "unaff_s5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (uint)*pbVar13;\n      }" { (expression_statement "uVar4 = (uint)*pbVar13;" (assignment_expression "uVar4 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" else (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" { (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" identifier = (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" ( (pointer_expression "**(code **)(puVar7 + -0x7888)" * (pointer_expression "*(code **)(puVar7 + -0x7888)" * (cast_expression "(code **)(puVar7 + -0x7888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7888)" ( (binary_expression "puVar7 + -0x7888" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" identifier = (pointer_expression "*(undefined **)(puVar20 + -0x158)" * (cast_expression "(undefined **)(puVar20 + -0x158)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x158)" ( (binary_expression "puVar20 + -0x158" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);" (assignment_expression "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + (uint)*pbVar13 * 4)" * (cast_expression "(uint *)(*piVar5 + (uint)*pbVar13 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (uint)*pbVar13 * 4)" ( (binary_expression "*piVar5 + (uint)*pbVar13 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "(uint)*pbVar13 * 4" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) }))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 != uVar14) goto LAB_00074dd8;" if (parenthesized_expression "(uVar4 != uVar14)" ( (binary_expression "uVar4 != uVar14" identifier != identifier) )) (goto_statement "goto LAB_00074dd8;" goto statement_identifier ;)) (expression_statement "pbVar12 = *(byte **)(puVar20 + -0x14c);" (assignment_expression "pbVar12 = *(byte **)(puVar20 + -0x14c)" identifier = (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" * (cast_expression "(undefined4 *)(puVar20 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0xc)" ( (binary_expression "puVar20 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" * (cast_expression "(byte **)(puVar20 + -0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x14c)" ( (binary_expression "puVar20 + -0x14c" identifier + number_literal) )))) = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) ;) })) (if_statement "if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" if (parenthesized_expression "(param_3 == pbVar13)" ( (binary_expression "param_3 == pbVar13" identifier == identifier) )) (compound_statement "{\n    uVar21 = 0;\n  }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) }) (else_clause "else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" else (if_statement "if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" if (parenthesized_expression "((*(uint *)(puVar20 + 0x10) & 8) == 0)" ( (binary_expression "(*(uint *)(puVar20 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 8)" ( (binary_expression "*(uint *)(puVar20 + 0x10) & 8" (pointer_expression "*(uint *)(puVar20 + 0x10)" * (cast_expression "(uint *)(puVar20 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x10)" ( (binary_expression "puVar20 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar21 = 1;\n  }" { (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" else (compound_statement "{\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" { (expression_statement "uVar21 = (uint)(*pbVar13 != 0x2f);" (assignment_expression "uVar21 = (uint)(*pbVar13 != 0x2f)" identifier = (call_expression "(uint)(*pbVar13 != 0x2f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar13 != 0x2f)" ( (binary_expression "*pbVar13 != 0x2f" (pointer_expression "*pbVar13" * identifier) != number_literal) )))) ;) }))))) (labeled_statement "LAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);" statement_identifier : (expression_statement "iVar2 = *(int *)(puVar20 + -0x2c);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x2c)" identifier = (pointer_expression "*(int *)(puVar20 + -0x2c)" * (cast_expression "(int *)(puVar20 + -0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x2c)" ( (binary_expression "puVar20 + -0x2c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }" if (parenthesized_expression "(iVar2 == **(int **)(puVar7 + -0x77c8))" ( (binary_expression "iVar2 == **(int **)(puVar7 + -0x77c8)" identifier == (pointer_expression "**(int **)(puVar7 + -0x77c8)" * (pointer_expression "*(int **)(puVar7 + -0x77c8)" * (cast_expression "(int **)(puVar7 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x77c8)" ( (binary_expression "puVar7 + -0x77c8" identifier + number_literal) )))))) )) (compound_statement "{\n    return uVar21;\n  }" { (return_statement "return uVar21;" return identifier ;) })) (expression_statement "pcVar22 = *(code **)(puVar7 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(puVar7 + -0x7834)" identifier = (pointer_expression "*(code **)(puVar7 + -0x7834)" * (cast_expression "(code **)(puVar7 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x7834)" ( (binary_expression "puVar7 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = rpl_fnmatch;" (assignment_expression "pcVar23 = rpl_fnmatch" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (expression_statement "*(code **)(puVar20 + -0x174) = pcVar23;" (assignment_expression "*(code **)(puVar20 + -0x174) = pcVar23" (pointer_expression "*(code **)(puVar20 + -0x174)" * (cast_expression "(code **)(puVar20 + -0x174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x174)" ( (binary_expression "puVar20 + -0x174" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x178) = uVar21;" (assignment_expression "*(uint *)(puVar20 + -0x178) = uVar21" (pointer_expression "*(uint *)(puVar20 + -0x178)" * (cast_expression "(uint *)(puVar20 + -0x178)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x178)" ( (binary_expression "puVar20 + -0x178" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x17c) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x17c) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x17c)" * (cast_expression "(uint *)(puVar20 + -0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x17c)" ( (binary_expression "puVar20 + -0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -0x180) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x180) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x180)" * (cast_expression "(undefined4 **)(puVar20 + -0x180)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x180)" ( (binary_expression "puVar20 + -0x180" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar20 + -0x184) = uVar14;" (assignment_expression "*(uint *)(puVar20 + -0x184) = uVar14" (pointer_expression "*(uint *)(puVar20 + -0x184)" * (cast_expression "(uint *)(puVar20 + -0x184)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x184)" ( (binary_expression "puVar20 + -0x184" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x188) = pbVar13;" (assignment_expression "*(byte **)(puVar20 + -0x188) = pbVar13" (pointer_expression "*(byte **)(puVar20 + -0x188)" * (cast_expression "(byte **)(puVar20 + -0x188)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x188)" ( (binary_expression "puVar20 + -0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x18c) = pbVar12;" (assignment_expression "*(byte **)(puVar20 + -0x18c) = pbVar12" (pointer_expression "*(byte **)(puVar20 + -0x18c)" * (cast_expression "(byte **)(puVar20 + -0x18c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x18c)" ( (binary_expression "puVar20 + -0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar20 + -400) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -400) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -400)" * (cast_expression "(undefined4 **)(puVar20 + -400)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -400)" ( (binary_expression "puVar20 + -400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x194) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x194) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x194)" * (cast_expression "(byte **)(puVar20 + -0x194)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x194)" ( (binary_expression "puVar20 + -0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;" (assignment_expression "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438" (pointer_expression "*(code **)(puVar20 + -0x1b8)" * (cast_expression "(code **)(puVar20 + -0x1b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) = (binary_expression "pcVar22 + 0x4a438" identifier + number_literal)) ;) (expression_statement "*(int *)(puVar20 + -0x1ac) = iVar2;" (assignment_expression "*(int *)(puVar20 + -0x1ac) = iVar2" (pointer_expression "*(int *)(puVar20 + -0x1ac)" * (cast_expression "(int *)(puVar20 + -0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(puVar20 + -0x1b0) = pbVar9;" (assignment_expression "*(byte **)(puVar20 + -0x1b0) = pbVar9" (pointer_expression "*(byte **)(puVar20 + -0x1b0)" * (cast_expression "(byte **)(puVar20 + -0x1b0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);" (assignment_expression "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70)" (pointer_expression "*(undefined4 *)(puVar20 + -0x19c)" * (cast_expression "(undefined4 *)(puVar20 + -0x19c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) )))) = (pointer_expression "**(undefined4 **)(pcVar22 + 0x42c70)" * (pointer_expression "*(undefined4 **)(pcVar22 + 0x42c70)" * (cast_expression "(undefined4 **)(pcVar22 + 0x42c70)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42c70)" ( (binary_expression "pcVar22 + 0x42c70" identifier + number_literal) )))))) ;) (expression_statement "iVar2 = (**(code **)(pcVar22 + 0x42e44))();" (assignment_expression "iVar2 = (**(code **)(pcVar22 + 0x42e44))()" identifier = (call_expression "(**(code **)(pcVar22 + 0x42e44))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x42e44))" ( (pointer_expression "**(code **)(pcVar22 + 0x42e44)" * (pointer_expression "*(code **)(pcVar22 + 0x42e44)" * (cast_expression "(code **)(pcVar22 + 0x42e44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x42e44)" ( (binary_expression "pcVar22 + 0x42e44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" { (expression_statement "*(undefined4 *)(puVar20 + -0x1a4) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a4) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a4)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a4)" ( (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar20 + -0x1a0) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a0) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a0)" * (cast_expression "(undefined4 *)(puVar20 + -0x1a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1a0)" ( (binary_expression "puVar20 + -0x1a0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" identifier = (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,puVar20 + -0x1ac,0)" ( number_literal , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" { (expression_statement "puVar10 = (undefined1 *)0x0;" (assignment_expression "puVar10 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" identifier = (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" ( number_literal , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , number_literal , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) )))) ;) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (if_statement "if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" { (expression_statement "uVar21 = uVar14 + iVar11;" (assignment_expression "uVar21 = uVar14 + iVar11" identifier = (binary_expression "uVar14 + iVar11" identifier + identifier)) ;) (if_statement "if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "((uVar21 < uVar14) || (0x3fffffff < uVar21))" ( (binary_expression "(uVar21 < uVar14) || (0x3fffffff < uVar21)" (parenthesized_expression "(uVar21 < uVar14)" ( (binary_expression "uVar21 < uVar14" identifier < identifier) )) || (parenthesized_expression "(0x3fffffff < uVar21)" ( (binary_expression "0x3fffffff < uVar21" number_literal < identifier) ))) )) (compound_statement "{\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }" { (expression_statement "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + -0x7578))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7578))" ( (pointer_expression "**(code **)(iVar19 + -0x7578)" * (pointer_expression "*(code **)(iVar19 + -0x7578)" * (cast_expression "(code **)(iVar19 + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7578)" ( (binary_expression "iVar19 + -0x7578" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" else (if_statement "if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" if (parenthesized_expression "(uVar21 < 2000)" ( (binary_expression "uVar21 < 2000" identifier < number_literal) )) (compound_statement "{\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }" { (expression_statement "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar21 * 4 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar21 * 4 + 7 & 0xfffffff8)" ( (binary_expression "uVar21 * 4 + 7 & 0xfffffff8" (binary_expression "uVar21 * 4 + 7" (binary_expression "uVar21 * 4" identifier * number_literal) + number_literal) & number_literal) )))) ;) (expression_statement "puVar16 = puVar20 + iVar17 + -0x1b8;" (assignment_expression "puVar16 = puVar20 + iVar17 + -0x1b8" identifier = (binary_expression "puVar20 + iVar17 + -0x1b8" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal)) ;) (expression_statement "puVar15 = puVar16 + uVar14 * 4;" (assignment_expression "puVar15 = puVar16 + uVar14 * 4" identifier = (binary_expression "puVar16 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal))) ;) (expression_statement "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" ( (pointer_expression "**(code **)(iVar19 + -0x765c)" * (pointer_expression "*(code **)(iVar19 + -0x765c)" * (cast_expression "(code **)(iVar19 + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x765c)" ( (binary_expression "iVar19 + -0x765c" identifier + number_literal) ))))) )) (argument_list "(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + iVar17 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + iVar17 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + iVar17 + -0x1c0)" ( (binary_expression "puVar20 + iVar17 + -0x1c0" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar15 + iVar2 * 4;" (assignment_expression "puVar10 = puVar15 + iVar2 * 4" identifier = (binary_expression "puVar15 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal))) ;) (expression_statement "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( identifier , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + iVar17 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + iVar17 + -0x1d0" identifier = (binary_expression "puVar20 + iVar17 + -0x1d0" (binary_expression "puVar20 + iVar17" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" else (compound_statement "{\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" { (expression_statement "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);" (assignment_expression "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4)" identifier = (call_expression "(**(code **)(iVar19 + -0x7820))(uVar21 * 4)" (parenthesized_expression "(**(code **)(iVar19 + -0x7820))" ( (pointer_expression "**(code **)(iVar19 + -0x7820)" * (pointer_expression "*(code **)(iVar19 + -0x7820)" * (cast_expression "(code **)(iVar19 + -0x7820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x7820)" ( (binary_expression "iVar19 + -0x7820" identifier + number_literal) ))))) )) (argument_list "(uVar21 * 4)" ( (binary_expression "uVar21 * 4" identifier * number_literal) )))) ;) (if_statement "if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }" { (expression_statement "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" identifier = (cast_expression "(undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x7578)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x7578" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }) (else_clause "else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" else (compound_statement "{\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" { (expression_statement "iVar17 = iVar19 + uVar14 * 4;" (assignment_expression "iVar17 = iVar19 + uVar14 * 4" identifier = (binary_expression "iVar19 + uVar14 * 4" identifier + (binary_expression "uVar14 * 4" identifier * number_literal))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1ac" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" ( identifier , (binary_expression "puVar20 + -0x1b0" identifier + number_literal) , identifier , (binary_expression "puVar20 + -0x1a4" identifier + number_literal) ))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);" (assignment_expression "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4)" identifier = (cast_expression "(undefined1 *)(iVar17 + iVar2 * 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar2 * 4)" ( (binary_expression "iVar17 + iVar2 * 4" identifier + (binary_expression "iVar2 * 4" identifier * number_literal)) )))) ;) (expression_statement "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( identifier , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))" ( (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" * (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x76fc)" ( (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x76fc" (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar19)" ( identifier ))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) }))) }))))) (goto_statement "goto LAB_000750b0;" goto statement_identifier ;) })) })) })) (expression_statement "iVar11 = *(int *)(puVar20 + -0x1b0);" (assignment_expression "iVar11 = *(int *)(puVar20 + -0x1b0)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b0)" * (cast_expression "(int *)(puVar20 + -0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b0)" ( (binary_expression "puVar20 + -0x1b0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11)" identifier = (call_expression "(**(code **)(iVar19 + -0x779c))(iVar11)" (parenthesized_expression "(**(code **)(iVar19 + -0x779c))" ( (pointer_expression "**(code **)(iVar19 + -0x779c)" * (pointer_expression "*(code **)(iVar19 + -0x779c)" * (cast_expression "(code **)(iVar19 + -0x779c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + -0x779c)" ( (binary_expression "iVar19 + -0x779c" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" * (cast_expression "(byte **)(puVar20 + -0x1c0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + -0x1c0)" ( (binary_expression "puVar20 + -0x1c0" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = (undefined1 *)(iVar11 + iVar2);" (assignment_expression "puVar10 = (undefined1 *)(iVar11 + iVar2)" identifier = (cast_expression "(undefined1 *)(iVar11 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + iVar2)" ( (binary_expression "iVar11 + iVar2" identifier + identifier) )))) ;) (expression_statement "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier = (call_expression "FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" identifier (argument_list "(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" ( (pointer_expression "*(undefined4 *)(puVar20 + -0x1ac)" * (cast_expression "(undefined4 *)(puVar20 + -0x1ac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1ac)" ( (binary_expression "puVar20 + -0x1ac" identifier + number_literal) )))) , identifier , identifier , (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar3 << 0x1d)" ( (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" identifier = (pointer_expression "*(int *)(puVar20 + -0x1b8)" * (cast_expression "(int *)(puVar20 + -0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x1b8)" ( (binary_expression "puVar20 + -0x1b8" identifier + number_literal) ))))) ;) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" identifier = (binary_expression "puVar20 + -0x1d0" identifier + number_literal)) ;) (labeled_statement "LAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" statement_identifier : (if_statement "if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" if (parenthesized_expression "(*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8))" ( (binary_expression "*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)" (pointer_expression "*(int *)(puVar20 + -0x19c)" * (cast_expression "(int *)(puVar20 + -0x19c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + -0x19c)" ( (binary_expression "puVar20 + -0x19c" identifier + number_literal) )))) != (pointer_expression "**(int **)(iVar2 + -0x77c8)" * (pointer_expression "*(int **)(iVar2 + -0x77c8)" * (cast_expression "(int **)(iVar2 + -0x77c8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x77c8)" ( (binary_expression "iVar2 + -0x77c8" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" { (expression_statement "pcVar22 = *(code **)(iVar2 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(iVar2 + -0x7834)" identifier = (pointer_expression "*(code **)(iVar2 + -0x7834)" * (cast_expression "(code **)(iVar2 + -0x7834)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + -0x7834)" ( (binary_expression "iVar2 + -0x7834" identifier + number_literal) ))))) ;) (expression_statement "pcVar23 = rpl_fseek;" (assignment_expression "pcVar23 = rpl_fseek" identifier = identifier) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(code **)(puVar15 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar15 + -4) = pcVar23" (pointer_expression "*(code **)(puVar15 + -4)" * (cast_expression "(code **)(puVar15 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;" (assignment_expression "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130" (pointer_expression "*(code **)(puVar15 + -0x10)" * (cast_expression "(code **)(puVar15 + -0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (binary_expression "pcVar22 + 0x4a130" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar10;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar10" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = rpl_fseeko();" (assignment_expression "uVar14 = rpl_fseeko()" identifier = (call_expression "rpl_fseeko()" identifier (argument_list "()" ( )))) ;) (return_statement "return uVar14;" return identifier ;) }))) (return_statement "return uVar14;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 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)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + 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) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) })) (break_statement break ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (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 = (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 *)) ) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * 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 = (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) )))) = (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) )))) = (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)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) * LIT)) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (binary_expression (parenthesized_expression ( IDENT )) * 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 (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 * (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 IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (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 ( )))) ;) (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 (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT , (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 = (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 , (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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) )))) = 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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))))) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" (type_identifier "uint") (function_declarator "FUN_00073c30(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" (identifier "FUN_00073c30") (parameter_list "(uint param_1,byte *param_2,byte *param_3,undefined4 param_4)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (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 "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  uint uVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  byte *pbVar9;\n  undefined1 *puVar10;\n  byte *unaff_s0;\n  int iVar11;\n  undefined4 *unaff_s1;\n  byte *unaff_s2;\n  byte *pbVar12;\n  byte *pbVar13;\n  undefined *unaff_s4;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined4 *unaff_s5;\n  undefined1 *puVar16;\n  int iVar17;\n  uint unaff_s7;\n  undefined *puVar18;\n  int iVar19;\n  undefined1 *puVar20;\n  uint uVar21;\n  code *pcVar22;\n  code *pcVar23;\n  undefined1 auStack_68 [24];\n  byte *local_48;\n  undefined4 *local_34;\n  undefined4 local_30;\n  byte *local_2c;\n  \n  puVar20 = auStack_68;\n  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;\n  local_30 = 0;\n  pbVar9 = param_2;\n  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);\n  puVar18 = PTR_DAT_000b7720;\n  iVar2 = (int)(char)param_2[1];\n  local_34 = &local_30;\n  if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }\nswitchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }\n  pcVar22 = FUN_000742fc;\n  pbVar12 = local_2c;\n  puVar18 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  puVar7 = puVar18 + 0x4b134;\n  *(code **)(puVar20 + -4) = pcVar22;\n  *(undefined1 **)(puVar20 + -8) = auStack_68;\n  *(uint *)(puVar20 + -0xc) = unaff_s7;\n  *(uint *)(puVar20 + -0x10) = param_1;\n  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;\n  *(undefined **)(puVar20 + -0x18) = unaff_s4;\n  *(byte **)(puVar20 + -0x1c) = param_2;\n  *(byte **)(puVar20 + -0x20) = unaff_s2;\n  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;\n  *(byte **)(puVar20 + -0x28) = unaff_s0;\n  *(undefined **)(puVar20 + -0x158) = puVar7;\n  *(undefined4 *)(puVar20 + 0xc) = param_4;\n  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);\n  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n  uVar14 = (uint)*pbVar12;\n  pbVar3 = param_3;\n  pbVar13 = pbVar9;\n  if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }\n  if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }\nLAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);\n  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }\n  pcVar22 = *(code **)(puVar7 + -0x7834);\n  pcVar23 = rpl_fnmatch;\n  (*pcVar22)();\n  puVar15 = puVar20 + -0x1d0;\n  *(code **)(puVar20 + -0x174) = pcVar23;\n  *(uint *)(puVar20 + -0x178) = uVar21;\n  *(uint *)(puVar20 + -0x17c) = param_1;\n  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;\n  *(uint *)(puVar20 + -0x184) = uVar14;\n  *(byte **)(puVar20 + -0x188) = pbVar13;\n  *(byte **)(puVar20 + -0x18c) = pbVar12;\n  *(undefined4 **)(puVar20 + -400) = unaff_s1;\n  *(byte **)(puVar20 + -0x194) = unaff_s0;\n  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;\n  *(int *)(puVar20 + -0x1ac) = iVar2;\n  *(byte **)(puVar20 + -0x1b0) = pbVar9;\n  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);\n  iVar2 = (**(code **)(pcVar22 + 0x42e44))();\n  iVar19 = *(int *)(puVar20 + -0x1b8);\n  if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }\n  iVar11 = *(int *)(puVar20 + -0x1b0);\n  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);\n  *(byte **)(puVar20 + -0x1c0) = pbVar3;\n  puVar10 = (undefined1 *)(iVar11 + iVar2);\n  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);\n  iVar2 = *(int *)(puVar20 + -0x1b8);\n  puVar15 = puVar20 + -0x1d0;\nLAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }\n  return uVar14;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "byte *unaff_s0;" (type_identifier "byte") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 *unaff_s1;" (type_identifier "undefined4") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "byte *unaff_s2;" (type_identifier "byte") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "undefined *unaff_s4;" (type_identifier "undefined") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined4 *unaff_s5;" (type_identifier "undefined4") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint unaff_s7;" (type_identifier "uint") (identifier "unaff_s7") (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined1 *puVar20;" (type_identifier "undefined1") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "undefined1 auStack_68 [24];" (type_identifier "undefined1") (array_declarator "auStack_68 [24]" (identifier "auStack_68") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "byte *local_48;" (type_identifier "byte") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 *local_34;" (type_identifier "undefined4") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "byte *local_2c;" (type_identifier "byte") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" (identifier "puVar20") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_2c = *(byte **)PTR___stack_chk_guard_000b7c68" (identifier "local_2c") (= "=") (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);" (assignment_expression "local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" (identifier "local_48") (= "=") (cast_expression "(byte *)(*(code *)PTR_strlen_000b7c94)(param_2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_000b7c94)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b7c94)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b7c94" (* "*") (cast_expression "(code *)PTR_strlen_000b7c94" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b7c94"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "puVar18 = PTR_DAT_000b7720;" (assignment_expression "puVar18 = PTR_DAT_000b7720" (identifier "puVar18") (= "=") (identifier "PTR_DAT_000b7720")) (; ";")) (expression_statement "iVar2 = (int)(char)param_2[1];" (assignment_expression "iVar2 = (int)(char)param_2[1]" (identifier "iVar2") (= "=") (cast_expression "(int)(char)param_2[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)param_2[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "local_34 = &local_30;" (assignment_expression "local_34 = &local_30" (identifier "local_34") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (if_statement "if (iVar2 != 0) {\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s2 = param_2 + 1;\n    unaff_s1 = (undefined4 *)0x0;\n    puVar7 = PTR_DAT_000b758c + 0x1ad0;\n    unaff_s7 = (uint)(param_1 - 0x3f < 2);\n    pbVar12 = unaff_s2;\n    puVar20 = auStack_68;\nLAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);\n  }" ({ "{") (expression_statement "unaff_s2 = param_2 + 1;" (assignment_expression "unaff_s2 = param_2 + 1" (identifier "unaff_s2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s1 = (undefined4 *)0x0;" (assignment_expression "unaff_s1 = (undefined4 *)0x0" (identifier "unaff_s1") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = PTR_DAT_000b758c + 0x1ad0;" (assignment_expression "puVar7 = PTR_DAT_000b758c + 0x1ad0" (identifier "puVar7") (= "=") (binary_expression "PTR_DAT_000b758c + 0x1ad0" (identifier "PTR_DAT_000b758c") (+ "+") (number_literal "0x1ad0"))) (; ";")) (expression_statement "unaff_s7 = (uint)(param_1 - 0x3f < 2);" (assignment_expression "unaff_s7 = (uint)(param_1 - 0x3f < 2)" (identifier "unaff_s7") (= "=") (call_expression "(uint)(param_1 - 0x3f < 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 - 0x3f < 2)" (( "(") (binary_expression "param_1 - 0x3f < 2" (binary_expression "param_1 - 0x3f" (identifier "param_1") (- "-") (number_literal "0x3f")) (< "<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pbVar12 = unaff_s2;" (assignment_expression "pbVar12 = unaff_s2" (identifier "pbVar12") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puVar20 = auStack_68;" (assignment_expression "puVar20 = auStack_68" (identifier "puVar20") (= "=") (identifier "auStack_68")) (; ";")) (labeled_statement "LAB_000742a0:\n    do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" (statement_identifier "LAB_000742a0") (: ":") (do_statement "do {\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    } while (iVar2 != 0);" (do "do") (compound_statement "{\n      unaff_s4 = puVar18;\n      if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }\n      iVar2 = (int)(char)pbVar12[1];\n      pbVar12 = unaff_s0;\n    }" ({ "{") (expression_statement "unaff_s4 = puVar18;" (assignment_expression "unaff_s4 = puVar18" (identifier "unaff_s4") (= "=") (identifier "puVar18")) (; ";")) (if_statement "if (iVar2 == 0x5b) {\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }\n      else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0x5b)" (( "(") (binary_expression "iVar2 == 0x5b" (identifier "iVar2") (== "==") (number_literal "0x5b")) () ")")) (compound_statement "{\n        if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }\n        if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }\n        pbVar12 = pbVar3;\n        if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }\n        while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }\n      }" ({ "{") (if_statement "if (*(int *)(puVar18 + -0x2c00) == 0) {\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar18 + -0x2c00) == 0)" (( "(") (binary_expression "*(int *)(puVar18 + -0x2c00) == 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" (* "*") (cast_expression "(int *)(puVar18 + -0x2c00)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x2c00)" (( "(") (binary_expression "puVar18 + -0x2c00" (identifier "puVar18") (+ "+") (number_literal "-0x2c00")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);\n          uVar8 = 0xffffffff;\n          if (iVar2 != 0) {\n            uVar8 = 1;\n          }\n          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;\n        }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);" (assignment_expression "iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_getenv_000b7dec)(puVar7)" (parenthesized_expression "(*(code *)PTR_getenv_000b7dec)" (( "(") (pointer_expression "*(code *)PTR_getenv_000b7dec" (* "*") (cast_expression "(code *)PTR_getenv_000b7dec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getenv_000b7dec"))) () ")")) (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")")))) (; ";")) (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar2 != 0) {\n            uVar8 = 1;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar8 = 1;\n          }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(puVar18 + -0x2c00) = uVar8;" (assignment_expression "*(undefined4 *)(puVar18 + -0x2c00) = uVar8" (pointer_expression "*(undefined4 *)(puVar18 + -0x2c00)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -0x2c00)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x2c00)" (( "(") (binary_expression "puVar18 + -0x2c00" (identifier "puVar18") (+ "+") (number_literal "-0x2c00")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if ((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {\n          pbVar3 = pbVar12 + 2;\n        }" (if "if") (parenthesized_expression "((pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))))" (( "(") (binary_expression "(pbVar12[1] == 0x21) ||\n           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" (parenthesized_expression "(pbVar12[1] == 0x21)" (( "(") (binary_expression "pbVar12[1] == 0x21" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))" (( "(") (parenthesized_expression "(pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e))" (( "(") (comma_expression "pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (assignment_expression "pbVar3 = pbVar12 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (, ",") (binary_expression "*(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)" (binary_expression "*(int *)(puVar18 + -0x2c00) < 0" (pointer_expression "*(int *)(puVar18 + -0x2c00)" (* "*") (cast_expression "(int *)(puVar18 + -0x2c00)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -0x2c00)" (( "(") (binary_expression "puVar18 + -0x2c00" (identifier "puVar18") (+ "+") (number_literal "-0x2c00")) () ")")))) (< "<") (number_literal "0")) (&& "&&") (parenthesized_expression "(pbVar12[1] == 0x5e)" (( "(") (binary_expression "pbVar12[1] == 0x5e" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5e")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          pbVar3 = pbVar12 + 2;\n        }" ({ "{") (expression_statement "pbVar3 = pbVar12 + 2;" (assignment_expression "pbVar3 = pbVar12 + 2" (identifier "pbVar3") (= "=") (binary_expression "pbVar12 + 2" (identifier "pbVar12") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "pbVar12 = pbVar3;" (assignment_expression "pbVar12 = pbVar3" (identifier "pbVar12") (= "=") (identifier "pbVar3")) (; ";")) (if_statement "if (*pbVar12 == 0x5d) {\n          pbVar12 = pbVar12 + 1;\n        }" (if "if") (parenthesized_expression "(*pbVar12 == 0x5d)" (( "(") (binary_expression "*pbVar12 == 0x5d" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n        }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (while_statement "while( true ) {\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          bVar1 = *pbVar12;\n          unaff_s0 = pbVar12 + 1;\n          if (bVar1 == 0x5d) break;\n          pbVar12 = pbVar12 + 1;\n          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;\n        }" ({ "{") (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" (identifier "bVar1") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" (identifier "unaff_s0") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar1 == 0x5d) break;" (if "if") (parenthesized_expression "(bVar1 == 0x5d)" (( "(") (binary_expression "bVar1 == 0x5d" (identifier "bVar1") (== "==") (number_literal "0x5d")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar1 == 0) goto switchD_00073e7c_caseD_20;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto switchD_00073e7c_caseD_20;" (goto "goto") (statement_identifier "switchD_00073e7c_caseD_20") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" (else "else") (compound_statement "{\n        puVar6 = unaff_s1;\n        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }\n        unaff_s0 = pbVar12 + 1;\n        unaff_s1 = puVar6;\n      }" ({ "{") (expression_statement "puVar6 = unaff_s1;" (assignment_expression "puVar6 = unaff_s1" (identifier "puVar6") (= "=") (identifier "unaff_s1")) (; ";")) (if_statement "if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }\n        else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" (if "if") (parenthesized_expression "(((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0))" (( "(") (binary_expression "((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" (parenthesized_expression "((iVar2 - 0x21U & 0xff) < 0x20)" (( "(") (binary_expression "(iVar2 - 0x21U & 0xff) < 0x20" (parenthesized_expression "(iVar2 - 0x21U & 0xff)" (( "(") (binary_expression "iVar2 - 0x21U & 0xff" (binary_expression "iVar2 - 0x21U" (identifier "iVar2") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x20")) () ")")) (&& "&&") (parenthesized_expression "((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)" (( "(") (binary_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0" (parenthesized_expression "(0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1)" (( "(") (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1" (binary_expression "0xc0000601U >> (iVar2 - 0x21U & 0x1f)" (number_literal "0xc0000601U") (>> ">>") (parenthesized_expression "(iVar2 - 0x21U & 0x1f)" (( "(") (binary_expression "iVar2 - 0x21U & 0x1f" (binary_expression "iVar2 - 0x21U" (identifier "iVar2") (- "-") (number_literal "0x21U")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }\n        }" ({ "{") (if_statement "if (pbVar12[1] == 0x28) {\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" (if "if") (parenthesized_expression "(pbVar12[1] == 0x28)" (( "(") (binary_expression "pbVar12[1] == 0x28" (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);\n            iVar2 = (int)(char)pbVar12[1];\n            pbVar12 = pbVar12 + 1;\n            goto LAB_000742a0;\n          }" ({ "{") (expression_statement "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);" (assignment_expression "unaff_s1 = (undefined4 *)((int)unaff_s1 + 1)" (identifier "unaff_s1") (= "=") (cast_expression "(undefined4 *)((int)unaff_s1 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s1 + 1)" (( "(") (binary_expression "(int)unaff_s1 + 1" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" (identifier "iVar2") (= "=") (cast_expression "(int)(char)pbVar12[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar12[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000742a0;" (goto "goto") (statement_identifier "LAB_000742a0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" (else "else") (compound_statement "{\n          unaff_s0 = pbVar12;\n          if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }\n        }" ({ "{") (expression_statement "unaff_s0 = pbVar12;" (assignment_expression "unaff_s0 = pbVar12" (identifier "unaff_s0") (= "=") (identifier "pbVar12")) (; ";")) (if_statement "if (iVar2 == 0x29) {\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }\n          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" (if "if") (parenthesized_expression "(iVar2 == 0x29)" (( "(") (binary_expression "iVar2 == 0x29" (identifier "iVar2") (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n            puVar6 = (undefined4 *)((int)unaff_s1 + -1);\n            if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)((int)unaff_s1 + -1);" (assignment_expression "puVar6 = (undefined4 *)((int)unaff_s1 + -1)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)((int)unaff_s1 + -1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s1 + -1)" (( "(") (binary_expression "(int)unaff_s1 + -1" (cast_expression "(int)unaff_s1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s1")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (unaff_s1 == (undefined4 *)0x0) {\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" (if "if") (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s1 == (undefined4 *)0x0" (identifier "unaff_s1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }\n              param_3 = pbVar12 + -(int)unaff_s2;\n              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }\n              break;\n            }" ({ "{") (if_statement "if (1 < param_1 - 0x3f) {\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" (if "if") (parenthesized_expression "(1 < param_1 - 0x3f)" (( "(") (binary_expression "1 < param_1 - 0x3f" (number_literal "1") (< "<") (binary_expression "param_1 - 0x3f" (identifier "param_1") (- "-") (number_literal "0x3f"))) () ")")) (compound_statement "{\n                local_48 = pbVar12 + (1 - (int)unaff_s2);\n              }" ({ "{") (expression_statement "local_48 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "local_48 = pbVar12 + (1 - (int)unaff_s2)" (identifier "local_48") (= "=") (binary_expression "pbVar12 + (1 - (int)unaff_s2)" (identifier "pbVar12") (+ "+") (parenthesized_expression "(1 - (int)unaff_s2)" (( "(") (binary_expression "1 - (int)unaff_s2" (number_literal "1") (- "-") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" (identifier "param_3") (= "=") (binary_expression "pbVar12 + -(int)unaff_s2" (identifier "pbVar12") (+ "+") (unary_expression "-(int)unaff_s2" (- "-") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))))) (; ";")) (if_statement "if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {\n                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\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                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n                pbVar9 = unaff_s2;\n                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n                *puVar15 = 0;\n                *unaff_s1 = 0;\n                *local_34 = unaff_s1;\n                param_1 = param_1 - 0x21;\n                puVar20 = puVar20 + iVar2;\n                if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }\n              }" ({ "{") (expression_statement "iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar2") (= "=") (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 "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18)" (identifier "unaff_s1") (= "=") (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + iVar2 + 0x18)" (( "(") (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" (identifier "pbVar9") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000b7c88" (* "*") (cast_expression "(code *)PTR_mempcpy_000b7c88" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000b7c88"))) () ")")) (argument_list "(puVar20 + iVar2 + 0x1c)" (( "(") (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*unaff_s1 = 0;" (assignment_expression "*unaff_s1 = 0" (pointer_expression "*unaff_s1" (* "*") (identifier "unaff_s1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = unaff_s1;" (assignment_expression "*local_34 = unaff_s1" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "param_1 = param_1 - 0x21;" (assignment_expression "param_1 = param_1 - 0x21" (identifier "param_1") (= "=") (binary_expression "param_1 - 0x21" (identifier "param_1") (- "-") (number_literal "0x21"))) (; ";")) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" (identifier "puVar20") (= "=") (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2"))) (; ";")) (if_statement "if (param_1 < 0x20) {\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" (if "if") (parenthesized_expression "(param_1 < 0x20)" (( "(") (binary_expression "param_1 < 0x20" (identifier "param_1") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                    \n                    \n                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;\n                  return uVar14;\n                }" ({ "{") (expression_statement "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()\n                  ;" (assignment_expression "uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" (identifier "uVar14") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (* "*") (cast_expression "(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)" (( "(") (binary_expression "PTR_DAT_000b758c + param_1 * 4 + 0x1c50" (binary_expression "PTR_DAT_000b758c + param_1 * 4" (identifier "PTR_DAT_000b758c") (+ "+") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x1c50")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" (else "else") (if_statement "if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" (if "if") (parenthesized_expression "((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0))" (( "(") (binary_expression "(iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)" (parenthesized_expression "(iVar2 == 0x7c)" (( "(") (binary_expression "iVar2 == 0x7c" (identifier "iVar2") (== "==") (number_literal "0x7c")) () ")")) (&& "&&") (parenthesized_expression "(unaff_s1 == (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s1 == (undefined4 *)0x0" (identifier "unaff_s1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n            pbVar3 = local_48;\n            if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }\n            param_3 = pbVar12 + -(int)unaff_s2;\n            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;\n            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);\n            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);\n            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);\n            *puVar15 = 0;\n            *unaff_s5 = 0;\n            *local_34 = unaff_s5;\n            pbVar9 = unaff_s2;\n            unaff_s2 = pbVar12 + 1;\n            puVar20 = puVar20 + iVar2;\n            local_34 = unaff_s5;\n          }" ({ "{") (expression_statement "pbVar3 = local_48;" (assignment_expression "pbVar3 = local_48" (identifier "pbVar3") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (unaff_s7 == 0) {\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" (if "if") (parenthesized_expression "(unaff_s7 == 0)" (( "(") (binary_expression "unaff_s7 == 0" (identifier "unaff_s7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar3 = pbVar12 + (1 - (int)unaff_s2);\n            }" ({ "{") (expression_statement "pbVar3 = pbVar12 + (1 - (int)unaff_s2);" (assignment_expression "pbVar3 = pbVar12 + (1 - (int)unaff_s2)" (identifier "pbVar3") (= "=") (binary_expression "pbVar12 + (1 - (int)unaff_s2)" (identifier "pbVar12") (+ "+") (parenthesized_expression "(1 - (int)unaff_s2)" (( "(") (binary_expression "1 - (int)unaff_s2" (number_literal "1") (- "-") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3 = pbVar12 + -(int)unaff_s2;" (assignment_expression "param_3 = pbVar12 + -(int)unaff_s2" (identifier "param_3") (= "=") (binary_expression "pbVar12 + -(int)unaff_s2" (identifier "pbVar12") (+ "+") (unary_expression "-(int)unaff_s2" (- "-") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))))) (; ";")) (if_statement "if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;" (if "if") (parenthesized_expression "(0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4)" (( "(") (binary_expression "0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4" (number_literal "0x1f3b") (< "<") (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) - 4" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar3 + 7)" (( "(") (binary_expression "pbVar3 + 7" (identifier "pbVar3") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (- "-") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);" (assignment_expression "iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (identifier "iVar2") (= "=") (unary_expression "-(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8)" (( "(") (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8" (binary_expression "((uint)(pbVar3 + 7) & 0xfffffffc) + 7" (parenthesized_expression "((uint)(pbVar3 + 7) & 0xfffffffc)" (( "(") (binary_expression "(uint)(pbVar3 + 7) & 0xfffffffc" (call_expression "(uint)(pbVar3 + 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar3 + 7)" (( "(") (binary_expression "pbVar3 + 7" (identifier "pbVar3") (+ "+") (number_literal "7")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);" (assignment_expression "unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)(puVar20 + iVar2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + iVar2 + 0x18)" (( "(") (binary_expression "puVar20 + iVar2 + 0x18" (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);" (assignment_expression "puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c)" (parenthesized_expression "(*(code *)PTR_mempcpy_000b7c88)" (( "(") (pointer_expression "*(code *)PTR_mempcpy_000b7c88" (* "*") (cast_expression "(code *)PTR_mempcpy_000b7c88" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mempcpy_000b7c88"))) () ")")) (argument_list "(puVar20 + iVar2 + 0x1c)" (( "(") (binary_expression "puVar20 + iVar2 + 0x1c" (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*unaff_s5 = 0;" (assignment_expression "*unaff_s5 = 0" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_34 = unaff_s5;" (assignment_expression "*local_34 = unaff_s5" (pointer_expression "*local_34" (* "*") (identifier "local_34")) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pbVar9 = unaff_s2;" (assignment_expression "pbVar9 = unaff_s2" (identifier "pbVar9") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "unaff_s2 = pbVar12 + 1;" (assignment_expression "unaff_s2 = pbVar12 + 1" (identifier "unaff_s2") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar20 = puVar20 + iVar2;" (assignment_expression "puVar20 = puVar20 + iVar2" (identifier "puVar20") (= "=") (binary_expression "puVar20 + iVar2" (identifier "puVar20") (+ "+") (identifier "iVar2"))) (; ";")) (expression_statement "local_34 = unaff_s5;" (assignment_expression "local_34 = unaff_s5" (identifier "local_34") (= "=") (identifier "unaff_s5")) (; ";")) (} "}"))))) (} "}")))) (expression_statement "unaff_s0 = pbVar12 + 1;" (assignment_expression "unaff_s0 = pbVar12 + 1" (identifier "unaff_s0") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s1 = puVar6;" (assignment_expression "unaff_s1 = puVar6" (identifier "unaff_s1") (= "=") (identifier "puVar6")) (; ";")) (} "}")))) (expression_statement "iVar2 = (int)(char)pbVar12[1];" (assignment_expression "iVar2 = (int)(char)pbVar12[1]" (identifier "iVar2") (= "=") (cast_expression "(int)(char)pbVar12[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)pbVar12[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "pbVar12 = unaff_s0;" (assignment_expression "pbVar12 = unaff_s0" (identifier "pbVar12") (= "=") (identifier "unaff_s0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (; ";"))) (} "}"))) (labeled_statement "switchD_00073e7c_caseD_20:\n  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" (statement_identifier "switchD_00073e7c_caseD_20") (: ":") (if_statement "if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(local_2c == *(byte **)PTR___stack_chk_guard_000b7c68)" (( "(") (binary_expression "local_2c == *(byte **)PTR___stack_chk_guard_000b7c68" (identifier "local_2c") (== "==") (pointer_expression "*(byte **)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(byte **)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) () ")")) (compound_statement "{\n    return 0xffffffff;\n  }" ({ "{") (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))) (expression_statement "pcVar22 = FUN_000742fc;" (assignment_expression "pcVar22 = FUN_000742fc" (identifier "pcVar22") (= "=") (identifier "FUN_000742fc")) (; ";")) (expression_statement "pbVar12 = local_2c;" (assignment_expression "pbVar12 = local_2c" (identifier "pbVar12") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar18 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar18 = PTR___stack_chk_fail_000b7bfc" (identifier "puVar18") (= "=") (identifier "PTR___stack_chk_fail_000b7bfc")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b7bfc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar7 = puVar18 + 0x4b134;" (assignment_expression "puVar7 = puVar18 + 0x4b134" (identifier "puVar7") (= "=") (binary_expression "puVar18 + 0x4b134" (identifier "puVar18") (+ "+") (number_literal "0x4b134"))) (; ";")) (expression_statement "*(code **)(puVar20 + -4) = pcVar22;" (assignment_expression "*(code **)(puVar20 + -4) = pcVar22" (pointer_expression "*(code **)(puVar20 + -4)" (* "*") (cast_expression "(code **)(puVar20 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -4)" (( "(") (binary_expression "puVar20 + -4" (identifier "puVar20") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "*(undefined1 **)(puVar20 + -8) = auStack_68;" (assignment_expression "*(undefined1 **)(puVar20 + -8) = auStack_68" (pointer_expression "*(undefined1 **)(puVar20 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar20 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -8)" (( "(") (binary_expression "puVar20 + -8" (identifier "puVar20") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0xc) = unaff_s7;" (assignment_expression "*(uint *)(puVar20 + -0xc) = unaff_s7" (pointer_expression "*(uint *)(puVar20 + -0xc)" (* "*") (cast_expression "(uint *)(puVar20 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0xc)" (( "(") (binary_expression "puVar20 + -0xc" (identifier "puVar20") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x10) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x10) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x10)" (* "*") (cast_expression "(uint *)(puVar20 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x10)" (( "(") (binary_expression "puVar20 + -0x10" (identifier "puVar20") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0x14) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x14) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x14)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14)" (( "(") (binary_expression "puVar20 + -0x14" (identifier "puVar20") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(undefined **)(puVar20 + -0x18) = unaff_s4;" (assignment_expression "*(undefined **)(puVar20 + -0x18) = unaff_s4" (pointer_expression "*(undefined **)(puVar20 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x18)" (( "(") (binary_expression "puVar20 + -0x18" (identifier "puVar20") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x1c) = param_2;" (assignment_expression "*(byte **)(puVar20 + -0x1c) = param_2" (pointer_expression "*(byte **)(puVar20 + -0x1c)" (* "*") (cast_expression "(byte **)(puVar20 + -0x1c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x1c)" (( "(") (binary_expression "puVar20 + -0x1c" (identifier "puVar20") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x20) = unaff_s2;" (assignment_expression "*(byte **)(puVar20 + -0x20) = unaff_s2" (pointer_expression "*(byte **)(puVar20 + -0x20)" (* "*") (cast_expression "(byte **)(puVar20 + -0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x20)" (( "(") (binary_expression "puVar20 + -0x20" (identifier "puVar20") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0x24) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -0x24) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -0x24)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0x24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x24)" (( "(") (binary_expression "puVar20 + -0x24" (identifier "puVar20") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x28) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x28) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x28)" (* "*") (cast_expression "(byte **)(puVar20 + -0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x28)" (( "(") (binary_expression "puVar20 + -0x28" (identifier "puVar20") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "*(undefined **)(puVar20 + -0x158) = puVar7;" (assignment_expression "*(undefined **)(puVar20 + -0x158) = puVar7" (pointer_expression "*(undefined **)(puVar20 + -0x158)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x158)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x158)" (( "(") (binary_expression "puVar20 + -0x158" (identifier "puVar20") (+ "+") (number_literal "-0x158")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = param_4;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = param_4" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0xc)" (( "(") (binary_expression "puVar20 + 0xc" (identifier "puVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);" (assignment_expression "*(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c)" (pointer_expression "*(undefined4 *)(puVar20 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x2c)" (( "(") (binary_expression "puVar20 + -0x2c" (identifier "puVar20") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "**(undefined4 **)(puVar18 + 0x4396c)" (* "*") (pointer_expression "*(undefined4 **)(puVar18 + 0x4396c)" (* "*") (cast_expression "(undefined4 **)(puVar18 + 0x4396c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x4396c)" (( "(") (binary_expression "puVar18 + 0x4396c" (identifier "puVar18") (+ "+") (number_literal "0x4396c")) () ")")))))) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" (* "*") (cast_expression "(byte **)(puVar20 + -0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14c)" (( "(") (binary_expression "puVar20 + -0x14c" (identifier "puVar20") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" (identifier "uVar14") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar3 = param_3;" (assignment_expression "pbVar3 = param_3" (identifier "pbVar3") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbVar13 = pbVar9;" (assignment_expression "pbVar13 = pbVar9" (identifier "pbVar13") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if (uVar14 != 0) {\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);\n    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;\n    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;\n    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);\n    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;\n    do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);" (assignment_expression "unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 0x10)" (( "(") (binary_expression "*(uint *)(puVar20 + 0x10) & 0x10" (pointer_expression "*(uint *)(puVar20 + 0x10)" (* "*") (cast_expression "(uint *)(puVar20 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x10)" (( "(") (binary_expression "puVar20 + 0x10" (identifier "puVar20") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;" (assignment_expression "*(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar20 + -0x144)" (* "*") (cast_expression "(int *)(puVar20 + -0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x144)" (( "(") (binary_expression "puVar20 + -0x144" (identifier "puVar20") (+ "+") (number_literal "-0x144")) () ")")))) (= "=") (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1cd0" (pointer_expression "*(int *)(puVar18 + 0x43290)" (* "*") (cast_expression "(int *)(puVar18 + 0x43290)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x43290)" (( "(") (binary_expression "puVar18 + 0x43290" (identifier "puVar18") (+ "+") (number_literal "0x43290")) () ")")))) (+ "+") (number_literal "0x1cd0"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;" (assignment_expression "*(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar20 + -0x138)" (* "*") (cast_expression "(int *)(puVar20 + -0x138)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x138)" (( "(") (binary_expression "puVar20 + -0x138" (identifier "puVar20") (+ "+") (number_literal "-0x138")) () ")")))) (= "=") (binary_expression "*(int *)(puVar18 + 0x4371c) + 0x3c30" (pointer_expression "*(int *)(puVar18 + 0x4371c)" (* "*") (cast_expression "(int *)(puVar18 + 0x4371c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x4371c)" (( "(") (binary_expression "puVar18 + 0x4371c" (identifier "puVar18") (+ "+") (number_literal "0x4371c")) () ")")))) (+ "+") (number_literal "0x3c30"))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);" (assignment_expression "*(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424)" (pointer_expression "*(undefined4 *)(puVar20 + -0x140)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x140)" (( "(") (binary_expression "puVar20 + -0x140" (identifier "puVar20") (+ "+") (number_literal "-0x140")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar18 + 0x43424)" (* "*") (cast_expression "(undefined4 *)(puVar18 + 0x43424)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x43424)" (( "(") (binary_expression "puVar18 + 0x43424" (identifier "puVar18") (+ "+") (number_literal "0x43424")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;" (assignment_expression "*(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar20 + -0x13c)" (* "*") (cast_expression "(int *)(puVar20 + -0x13c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x13c)" (( "(") (binary_expression "puVar20 + -0x13c" (identifier "puVar20") (+ "+") (number_literal "-0x13c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar18 + 0x43290) + 0x1ad0" (pointer_expression "*(int *)(puVar18 + 0x43290)" (* "*") (cast_expression "(int *)(puVar18 + 0x43290)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x43290)" (( "(") (binary_expression "puVar18 + 0x43290" (identifier "puVar18") (+ "+") (number_literal "0x43290")) () ")")))) (+ "+") (number_literal "0x1ad0"))) (; ";")) (do_statement "do {\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    } while (uVar14 != 0);" (do "do") (compound_statement "{\n      if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }\n      if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }\n      uVar21 = 1;\n      if (param_3 == pbVar13) goto LAB_00074dd8;\n      if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }\n      uVar21 = 1;\n      if (uVar4 != uVar14) goto LAB_00074dd8;\n      pbVar12 = *(byte **)(puVar20 + -0x14c);\n      *(undefined4 *)(puVar20 + 0xc) = 0;\n      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;\n      uVar14 = (uint)*pbVar12;\n      pbVar13 = pbVar13 + 1;\n    }" ({ "{") (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" (if "if") (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s5 != (undefined4 *)0x0" (identifier "unaff_s5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" (( "(") (pointer_expression "**(code **)(puVar7 + -0x7888)" (* "*") (pointer_expression "*(code **)(puVar7 + -0x7888)" (* "*") (cast_expression "(code **)(puVar7 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x7888)" (( "(") (binary_expression "puVar7 + -0x7888" (identifier "puVar7") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined **)(puVar20 + -0x158)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x158)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x158)" (( "(") (binary_expression "puVar20 + -0x158" (identifier "puVar20") (+ "+") (number_literal "-0x158")) () ")"))))) (; ";")) (expression_statement "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);" (assignment_expression "uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" (identifier "uVar14") (= "=") (binary_expression "(uint)*(byte *)(*piVar5 + uVar14 * 4 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*piVar5 + uVar14 * 4 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + uVar14 * 4 + 3)" (( "(") (binary_expression "*piVar5 + uVar14 * 4 + 3" (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((uVar14 - 0x21 & 0xff) < 0x3c) {\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" (if "if") (parenthesized_expression "((uVar14 - 0x21 & 0xff) < 0x3c)" (( "(") (binary_expression "(uVar14 - 0x21 & 0xff) < 0x3c" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" (( "(") (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" (identifier "uVar14") (- "-") (number_literal "0x21")) (& "&") (number_literal "0xff")) () ")")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n                    \n                    \n        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();\n        return uVar14;\n      }" ({ "{") (expression_statement "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))();" (assignment_expression "uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" (identifier "uVar14") (= "=") (call_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))()" (parenthesized_expression "(*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)))" (( "(") (pointer_expression "*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" (* "*") (cast_expression "(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4))" (( "(") (binary_expression "puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" (identifier "puVar7") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4)" (( "(") (binary_expression "*(int *)(puVar20 + -0x144) +\n                                             (uVar14 - 0x21 & 0xff) * 4" (pointer_expression "*(int *)(puVar20 + -0x144)" (* "*") (cast_expression "(int *)(puVar20 + -0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x144)" (( "(") (binary_expression "puVar20 + -0x144" (identifier "puVar20") (+ "+") (number_literal "-0x144")) () ")")))) (+ "+") (binary_expression "(uVar14 - 0x21 & 0xff) * 4" (parenthesized_expression "(uVar14 - 0x21 & 0xff)" (( "(") (binary_expression "uVar14 - 0x21 & 0xff" (binary_expression "uVar14 - 0x21" (identifier "uVar14") (- "-") (number_literal "0x21")) (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}"))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_3 == pbVar13) goto LAB_00074dd8;" (if "if") (parenthesized_expression "(param_3 == pbVar13)" (( "(") (binary_expression "param_3 == pbVar13" (identifier "param_3") (== "==") (identifier "pbVar13")) () ")")) (goto_statement "goto LAB_00074dd8;" (goto "goto") (statement_identifier "LAB_00074dd8") (; ";"))) (if_statement "if (unaff_s5 == (undefined4 *)0x0) {\n        uVar4 = (uint)*pbVar13;\n      }\n      else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" (if "if") (parenthesized_expression "(unaff_s5 == (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s5 == (undefined4 *)0x0" (identifier "unaff_s5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar4 = (uint)*pbVar13;\n      }" ({ "{") (expression_statement "uVar4 = (uint)*pbVar13;" (assignment_expression "uVar4 = (uint)*pbVar13" (identifier "uVar4") (= "=") (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13"))) (; ";")) (} "}")) (else_clause "else {\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" (else "else") (compound_statement "{\n        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();\n        puVar7 = *(undefined **)(puVar20 + -0x158);\n        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar7 + -0x7888))()" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(puVar7 + -0x7888))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar7 + -0x7888))()" (parenthesized_expression "(**(code **)(puVar7 + -0x7888))" (( "(") (pointer_expression "**(code **)(puVar7 + -0x7888)" (* "*") (pointer_expression "*(code **)(puVar7 + -0x7888)" (* "*") (cast_expression "(code **)(puVar7 + -0x7888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x7888)" (( "(") (binary_expression "puVar7 + -0x7888" (identifier "puVar7") (+ "+") (number_literal "-0x7888")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar7 = *(undefined **)(puVar20 + -0x158);" (assignment_expression "puVar7 = *(undefined **)(puVar20 + -0x158)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined **)(puVar20 + -0x158)" (* "*") (cast_expression "(undefined **)(puVar20 + -0x158)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x158)" (( "(") (binary_expression "puVar20 + -0x158" (identifier "puVar20") (+ "+") (number_literal "-0x158")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);" (assignment_expression "uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(*piVar5 + (uint)*pbVar13 * 4)" (* "*") (cast_expression "(uint *)(*piVar5 + (uint)*pbVar13 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + (uint)*pbVar13 * 4)" (( "(") (binary_expression "*piVar5 + (uint)*pbVar13 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "(uint)*pbVar13 * 4" (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar13")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar4 != uVar14) goto LAB_00074dd8;" (if "if") (parenthesized_expression "(uVar4 != uVar14)" (( "(") (binary_expression "uVar4 != uVar14" (identifier "uVar4") (!= "!=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00074dd8;" (goto "goto") (statement_identifier "LAB_00074dd8") (; ";"))) (expression_statement "pbVar12 = *(byte **)(puVar20 + -0x14c);" (assignment_expression "pbVar12 = *(byte **)(puVar20 + -0x14c)" (identifier "pbVar12") (= "=") (pointer_expression "*(byte **)(puVar20 + -0x14c)" (* "*") (cast_expression "(byte **)(puVar20 + -0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14c)" (( "(") (binary_expression "puVar20 + -0x14c" (identifier "puVar20") (+ "+") (number_literal "-0x14c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + 0xc) = 0" (pointer_expression "*(undefined4 *)(puVar20 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar20 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0xc)" (( "(") (binary_expression "puVar20 + 0xc" (identifier "puVar20") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1;" (assignment_expression "*(byte **)(puVar20 + -0x14c) = pbVar12 + 1" (pointer_expression "*(byte **)(puVar20 + -0x14c)" (* "*") (cast_expression "(byte **)(puVar20 + -0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x14c)" (( "(") (binary_expression "puVar20 + -0x14c" (identifier "puVar20") (+ "+") (number_literal "-0x14c")) () ")")))) (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = (uint)*pbVar12;" (assignment_expression "uVar14 = (uint)*pbVar12" (identifier "uVar14") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (param_3 == pbVar13) {\n    uVar21 = 0;\n  }\n  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" (if "if") (parenthesized_expression "(param_3 == pbVar13)" (( "(") (binary_expression "param_3 == pbVar13" (identifier "param_3") (== "==") (identifier "pbVar13")) () ")")) (compound_statement "{\n    uVar21 = 0;\n  }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" (else "else") (if_statement "if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {\n    uVar21 = 1;\n  }\n  else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" (if "if") (parenthesized_expression "((*(uint *)(puVar20 + 0x10) & 8) == 0)" (( "(") (binary_expression "(*(uint *)(puVar20 + 0x10) & 8) == 0" (parenthesized_expression "(*(uint *)(puVar20 + 0x10) & 8)" (( "(") (binary_expression "*(uint *)(puVar20 + 0x10) & 8" (pointer_expression "*(uint *)(puVar20 + 0x10)" (* "*") (cast_expression "(uint *)(puVar20 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x10)" (( "(") (binary_expression "puVar20 + 0x10" (identifier "puVar20") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar21 = 1;\n  }" ({ "{") (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" (else "else") (compound_statement "{\n    uVar21 = (uint)(*pbVar13 != 0x2f);\n  }" ({ "{") (expression_statement "uVar21 = (uint)(*pbVar13 != 0x2f);" (assignment_expression "uVar21 = (uint)(*pbVar13 != 0x2f)" (identifier "uVar21") (= "=") (call_expression "(uint)(*pbVar13 != 0x2f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar13 != 0x2f)" (( "(") (binary_expression "*pbVar13 != 0x2f" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (!= "!=") (number_literal "0x2f")) () ")")))) (; ";")) (} "}")))))) (labeled_statement "LAB_00074dd8:\n  iVar2 = *(int *)(puVar20 + -0x2c);" (statement_identifier "LAB_00074dd8") (: ":") (expression_statement "iVar2 = *(int *)(puVar20 + -0x2c);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x2c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x2c)" (* "*") (cast_expression "(int *)(puVar20 + -0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x2c)" (( "(") (binary_expression "puVar20 + -0x2c" (identifier "puVar20") (+ "+") (number_literal "-0x2c")) () ")"))))) (; ";"))) (if_statement "if (iVar2 == **(int **)(puVar7 + -0x77c8)) {\n    return uVar21;\n  }" (if "if") (parenthesized_expression "(iVar2 == **(int **)(puVar7 + -0x77c8))" (( "(") (binary_expression "iVar2 == **(int **)(puVar7 + -0x77c8)" (identifier "iVar2") (== "==") (pointer_expression "**(int **)(puVar7 + -0x77c8)" (* "*") (pointer_expression "*(int **)(puVar7 + -0x77c8)" (* "*") (cast_expression "(int **)(puVar7 + -0x77c8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x77c8)" (( "(") (binary_expression "puVar7 + -0x77c8" (identifier "puVar7") (+ "+") (number_literal "-0x77c8")) () ")")))))) () ")")) (compound_statement "{\n    return uVar21;\n  }" ({ "{") (return_statement "return uVar21;" (return "return") (identifier "uVar21") (; ";")) (} "}"))) (expression_statement "pcVar22 = *(code **)(puVar7 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(puVar7 + -0x7834)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(puVar7 + -0x7834)" (* "*") (cast_expression "(code **)(puVar7 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x7834)" (( "(") (binary_expression "puVar7 + -0x7834" (identifier "puVar7") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar23 = rpl_fnmatch;" (assignment_expression "pcVar23 = rpl_fnmatch" (identifier "pcVar23") (= "=") (identifier "rpl_fnmatch")) (; ";")) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" (identifier "puVar15") (= "=") (binary_expression "puVar20 + -0x1d0" (identifier "puVar20") (+ "+") (number_literal "-0x1d0"))) (; ";")) (expression_statement "*(code **)(puVar20 + -0x174) = pcVar23;" (assignment_expression "*(code **)(puVar20 + -0x174) = pcVar23" (pointer_expression "*(code **)(puVar20 + -0x174)" (* "*") (cast_expression "(code **)(puVar20 + -0x174)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x174)" (( "(") (binary_expression "puVar20 + -0x174" (identifier "puVar20") (+ "+") (number_literal "-0x174")) () ")")))) (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x178) = uVar21;" (assignment_expression "*(uint *)(puVar20 + -0x178) = uVar21" (pointer_expression "*(uint *)(puVar20 + -0x178)" (* "*") (cast_expression "(uint *)(puVar20 + -0x178)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x178)" (( "(") (binary_expression "puVar20 + -0x178" (identifier "puVar20") (+ "+") (number_literal "-0x178")) () ")")))) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x17c) = param_1;" (assignment_expression "*(uint *)(puVar20 + -0x17c) = param_1" (pointer_expression "*(uint *)(puVar20 + -0x17c)" (* "*") (cast_expression "(uint *)(puVar20 + -0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x17c)" (( "(") (binary_expression "puVar20 + -0x17c" (identifier "puVar20") (+ "+") (number_literal "-0x17c")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -0x180) = unaff_s5;" (assignment_expression "*(undefined4 **)(puVar20 + -0x180) = unaff_s5" (pointer_expression "*(undefined4 **)(puVar20 + -0x180)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -0x180)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x180)" (( "(") (binary_expression "puVar20 + -0x180" (identifier "puVar20") (+ "+") (number_literal "-0x180")) () ")")))) (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "*(uint *)(puVar20 + -0x184) = uVar14;" (assignment_expression "*(uint *)(puVar20 + -0x184) = uVar14" (pointer_expression "*(uint *)(puVar20 + -0x184)" (* "*") (cast_expression "(uint *)(puVar20 + -0x184)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x184)" (( "(") (binary_expression "puVar20 + -0x184" (identifier "puVar20") (+ "+") (number_literal "-0x184")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x188) = pbVar13;" (assignment_expression "*(byte **)(puVar20 + -0x188) = pbVar13" (pointer_expression "*(byte **)(puVar20 + -0x188)" (* "*") (cast_expression "(byte **)(puVar20 + -0x188)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x188)" (( "(") (binary_expression "puVar20 + -0x188" (identifier "puVar20") (+ "+") (number_literal "-0x188")) () ")")))) (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x18c) = pbVar12;" (assignment_expression "*(byte **)(puVar20 + -0x18c) = pbVar12" (pointer_expression "*(byte **)(puVar20 + -0x18c)" (* "*") (cast_expression "(byte **)(puVar20 + -0x18c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x18c)" (( "(") (binary_expression "puVar20 + -0x18c" (identifier "puVar20") (+ "+") (number_literal "-0x18c")) () ")")))) (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "*(undefined4 **)(puVar20 + -400) = unaff_s1;" (assignment_expression "*(undefined4 **)(puVar20 + -400) = unaff_s1" (pointer_expression "*(undefined4 **)(puVar20 + -400)" (* "*") (cast_expression "(undefined4 **)(puVar20 + -400)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -400)" (( "(") (binary_expression "puVar20 + -400" (identifier "puVar20") (+ "+") (number_literal "-400")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x194) = unaff_s0;" (assignment_expression "*(byte **)(puVar20 + -0x194) = unaff_s0" (pointer_expression "*(byte **)(puVar20 + -0x194)" (* "*") (cast_expression "(byte **)(puVar20 + -0x194)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x194)" (( "(") (binary_expression "puVar20 + -0x194" (identifier "puVar20") (+ "+") (number_literal "-0x194")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;" (assignment_expression "*(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438" (pointer_expression "*(code **)(puVar20 + -0x1b8)" (* "*") (cast_expression "(code **)(puVar20 + -0x1b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (= "=") (binary_expression "pcVar22 + 0x4a438" (identifier "pcVar22") (+ "+") (number_literal "0x4a438"))) (; ";")) (expression_statement "*(int *)(puVar20 + -0x1ac) = iVar2;" (assignment_expression "*(int *)(puVar20 + -0x1ac) = iVar2" (pointer_expression "*(int *)(puVar20 + -0x1ac)" (* "*") (cast_expression "(int *)(puVar20 + -0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1ac)" (( "(") (binary_expression "puVar20 + -0x1ac" (identifier "puVar20") (+ "+") (number_literal "-0x1ac")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x1b0) = pbVar9;" (assignment_expression "*(byte **)(puVar20 + -0x1b0) = pbVar9" (pointer_expression "*(byte **)(puVar20 + -0x1b0)" (* "*") (cast_expression "(byte **)(puVar20 + -0x1b0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x1b0)" (( "(") (binary_expression "puVar20 + -0x1b0" (identifier "puVar20") (+ "+") (number_literal "-0x1b0")) () ")")))) (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);" (assignment_expression "*(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70)" (pointer_expression "*(undefined4 *)(puVar20 + -0x19c)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x19c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x19c)" (( "(") (binary_expression "puVar20 + -0x19c" (identifier "puVar20") (+ "+") (number_literal "-0x19c")) () ")")))) (= "=") (pointer_expression "**(undefined4 **)(pcVar22 + 0x42c70)" (* "*") (pointer_expression "*(undefined4 **)(pcVar22 + 0x42c70)" (* "*") (cast_expression "(undefined4 **)(pcVar22 + 0x42c70)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x42c70)" (( "(") (binary_expression "pcVar22 + 0x42c70" (identifier "pcVar22") (+ "+") (number_literal "0x42c70")) () ")")))))) (; ";")) (expression_statement "iVar2 = (**(code **)(pcVar22 + 0x42e44))();" (assignment_expression "iVar2 = (**(code **)(pcVar22 + 0x42e44))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(pcVar22 + 0x42e44))()" (parenthesized_expression "(**(code **)(pcVar22 + 0x42e44))" (( "(") (pointer_expression "**(code **)(pcVar22 + 0x42e44)" (* "*") (pointer_expression "*(code **)(pcVar22 + 0x42e44)" (* "*") (cast_expression "(code **)(pcVar22 + 0x42e44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x42e44)" (( "(") (binary_expression "pcVar22 + 0x42e44" (identifier "pcVar22") (+ "+") (number_literal "0x42e44")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (if_statement "if (iVar2 != 1) {\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    *(undefined4 *)(puVar20 + -0x1a4) = 0;\n    *(undefined4 *)(puVar20 + -0x1a0) = 0;\n    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);\n    iVar19 = *(int *)(puVar20 + -0x1b8);\n    uVar14 = iVar2 + 1;\n    if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)(puVar20 + -0x1a4) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a4) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a4)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1a4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1a4)" (( "(") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar20 + -0x1a0) = 0;" (assignment_expression "*(undefined4 *)(puVar20 + -0x1a0) = 0" (pointer_expression "*(undefined4 *)(puVar20 + -0x1a0)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1a0)" (( "(") (binary_expression "puVar20 + -0x1a0" (identifier "puVar20") (+ "+") (number_literal "-0x1a0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x765c)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x765c)" (* "*") (cast_expression "(code **)(iVar19 + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x765c)" (( "(") (binary_expression "iVar19 + -0x765c" (identifier "iVar19") (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(0,puVar20 + -0x1ac,0)" (( "(") (number_literal "0") (, ",") (binary_expression "puVar20 + -0x1ac" (identifier "puVar20") (+ "+") (number_literal "-0x1ac")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "uVar14 = iVar2 + 1;" (assignment_expression "uVar14 = iVar2 + 1" (identifier "uVar14") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 != 0) {\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar10 = (undefined1 *)0x0;\n      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);\n      iVar19 = *(int *)(puVar20 + -0x1b8);\n      iVar11 = iVar2 + 1;\n      if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }\n    }" ({ "{") (expression_statement "puVar10 = (undefined1 *)0x0;" (assignment_expression "puVar10 = (undefined1 *)0x0" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x765c)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x765c)" (* "*") (cast_expression "(code **)(iVar19 + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x765c)" (( "(") (binary_expression "iVar19 + -0x765c" (identifier "iVar19") (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4)" (( "(") (number_literal "0") (, ",") (binary_expression "puVar20 + -0x1b0" (identifier "puVar20") (+ "+") (number_literal "-0x1b0")) (, ",") (number_literal "0") (, ",") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")")))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar19 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar2 + 1;" (assignment_expression "iVar11 = iVar2 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar11 != 0) {\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar21 = uVar14 + iVar11;\n        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }\n        goto LAB_000750b0;\n      }" ({ "{") (expression_statement "uVar21 = uVar14 + iVar11;" (assignment_expression "uVar21 = uVar14 + iVar11" (identifier "uVar21") (= "=") (binary_expression "uVar14 + iVar11" (identifier "uVar14") (+ "+") (identifier "iVar11"))) (; ";")) (if_statement "if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }\n        else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" (if "if") (parenthesized_expression "((uVar21 < uVar14) || (0x3fffffff < uVar21))" (( "(") (binary_expression "(uVar21 < uVar14) || (0x3fffffff < uVar21)" (parenthesized_expression "(uVar21 < uVar14)" (( "(") (binary_expression "uVar21 < uVar14" (identifier "uVar21") (< "<") (identifier "uVar14")) () ")")) (|| "||") (parenthesized_expression "(0x3fffffff < uVar21)" (( "(") (binary_expression "0x3fffffff < uVar21" (number_literal "0x3fffffff") (< "<") (identifier "uVar21")) () ")"))) () ")")) (compound_statement "{\n          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          *puVar6 = 0xc;\n          uVar14 = 0xffffffff;\n        }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(**(code **)(iVar19 + -0x7578))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + -0x7578))()" (parenthesized_expression "(**(code **)(iVar19 + -0x7578))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7578)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7578)" (* "*") (cast_expression "(code **)(iVar19 + -0x7578)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7578)" (( "(") (binary_expression "iVar19 + -0x7578" (identifier "iVar19") (+ "+") (number_literal "-0x7578")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" (identifier "uVar14") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" (else "else") (if_statement "if (uVar21 < 2000) {\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }\n        else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" (if "if") (parenthesized_expression "(uVar21 < 2000)" (( "(") (binary_expression "uVar21 < 2000" (identifier "uVar21") (< "<") (number_literal "2000")) () ")")) (compound_statement "{\n          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);\n          puVar16 = puVar20 + iVar17 + -0x1b8;\n          puVar15 = puVar16 + uVar14 * 4;\n          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;\n          puVar10 = puVar15 + iVar2 * 4;\n          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n          iVar2 = *(int *)(puVar20 + -0x1b8);\n          puVar15 = puVar20 + iVar17 + -0x1d0;\n        }" ({ "{") (expression_statement "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);" (assignment_expression "iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8)" (identifier "iVar17") (= "=") (unary_expression "-(uVar21 * 4 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar21 * 4 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar21 * 4 + 7 & 0xfffffff8" (binary_expression "uVar21 * 4 + 7" (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4")) (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar16 = puVar20 + iVar17 + -0x1b8;" (assignment_expression "puVar16 = puVar20 + iVar17 + -0x1b8" (identifier "puVar16") (= "=") (binary_expression "puVar20 + iVar17 + -0x1b8" (binary_expression "puVar20 + iVar17" (identifier "puVar20") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "-0x1b8"))) (; ";")) (expression_statement "puVar15 = puVar16 + uVar14 * 4;" (assignment_expression "puVar15 = puVar16 + uVar14 * 4" (identifier "puVar15") (= "=") (binary_expression "puVar16 + uVar14 * 4" (identifier "puVar16") (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(iVar19 + -0x765c))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x765c)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x765c)" (* "*") (cast_expression "(code **)(iVar19 + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x765c)" (( "(") (binary_expression "iVar19 + -0x765c" (identifier "iVar19") (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (( "(") (identifier "puVar16") (, ",") (binary_expression "puVar20 + -0x1ac" (identifier "puVar20") (+ "+") (number_literal "-0x1ac")) (, ",") (identifier "uVar14") (, ",") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (( "(") (identifier "puVar15") (, ",") (binary_expression "puVar20 + -0x1b0" (identifier "puVar20") (+ "+") (number_literal "-0x1b0")) (, ",") (identifier "iVar11") (, ",") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")"))) (; ";")) (expression_statement "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + iVar17 + -0x1c0)" (* "*") (cast_expression "(byte **)(puVar20 + iVar17 + -0x1c0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + iVar17 + -0x1c0)" (( "(") (binary_expression "puVar20 + iVar17 + -0x1c0" (binary_expression "puVar20 + iVar17" (identifier "puVar20") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "-0x1c0")) () ")")))) (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "puVar10 = puVar15 + iVar2 * 4;" (assignment_expression "puVar10 = puVar15 + iVar2 * 4" (identifier "puVar10") (= "=") (binary_expression "puVar15 + iVar2 * 4" (identifier "puVar15") (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4")))) (; ";")) (expression_statement "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "uVar14") (= "=") (call_expression "FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "FUN_00072f44") (argument_list "(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (( "(") (identifier "puVar16") (, ",") (identifier "puVar15") (, ",") (identifier "puVar10") (, ",") (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar3 << 0x1d)" (( "(") (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar20 + iVar17 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + iVar17 + -0x1d0" (identifier "puVar15") (= "=") (binary_expression "puVar20 + iVar17 + -0x1d0" (binary_expression "puVar20 + iVar17" (identifier "puVar20") (+ "+") (identifier "iVar17")) (+ "+") (number_literal "-0x1d0"))) (; ";")) (} "}")) (else_clause "else {\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);\n          if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }\n        }" ({ "{") (expression_statement "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);" (assignment_expression "iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(iVar19 + -0x7820))(uVar21 * 4)" (parenthesized_expression "(**(code **)(iVar19 + -0x7820))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x7820)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x7820)" (* "*") (cast_expression "(code **)(iVar19 + -0x7820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x7820)" (( "(") (binary_expression "iVar19 + -0x7820" (identifier "iVar19") (+ "+") (number_literal "-0x7820")) () ")"))))) () ")")) (argument_list "(uVar21 * 4)" (( "(") (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (iVar19 == 0) {\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }\n          else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            *puVar6 = 0xc;\n            uVar14 = 0xffffffff;\n            puVar15 = puVar20 + -0x1d0;\n          }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();" (assignment_expression "puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))()" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" (* "*") (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x7578)" (( "(") (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x7578" (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (+ "+") (number_literal "-0x7578")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "*puVar6 = 0xc;" (assignment_expression "*puVar6 = 0xc" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" (identifier "uVar14") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" (identifier "puVar15") (= "=") (binary_expression "puVar20 + -0x1d0" (identifier "puVar20") (+ "+") (number_literal "-0x1d0"))) (; ";")) (} "}")) (else_clause "else {\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" (else "else") (compound_statement "{\n            iVar17 = iVar19 + uVar14 * 4;\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);\n            *(byte **)(puVar20 + -0x1c0) = pbVar3;\n            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);\n            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);\n            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);\n            iVar2 = *(int *)(puVar20 + -0x1b8);\n            puVar15 = puVar20 + -0x1d0;\n          }" ({ "{") (expression_statement "iVar17 = iVar19 + uVar14 * 4;" (assignment_expression "iVar17 = iVar19 + uVar14 * 4" (identifier "iVar17") (= "=") (binary_expression "iVar19 + uVar14 * 4" (identifier "iVar19") (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4")))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4)" (( "(") (identifier "iVar19") (, ",") (binary_expression "puVar20 + -0x1ac" (identifier "puVar20") (+ "+") (number_literal "-0x1ac")) (, ",") (identifier "uVar14") (, ",") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))\n                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (* "*") (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x765c)" (( "(") (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x765c" (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (+ "+") (number_literal "-0x765c")) () ")"))))) () ")")) (argument_list "(iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4)" (( "(") (identifier "iVar17") (, ",") (binary_expression "puVar20 + -0x1b0" (identifier "puVar20") (+ "+") (number_literal "-0x1b0")) (, ",") (identifier "iVar11") (, ",") (binary_expression "puVar20 + -0x1a4" (identifier "puVar20") (+ "+") (number_literal "-0x1a4")) () ")"))) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" (* "*") (cast_expression "(byte **)(puVar20 + -0x1c0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x1c0)" (( "(") (binary_expression "puVar20 + -0x1c0" (identifier "puVar20") (+ "+") (number_literal "-0x1c0")) () ")")))) (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);" (assignment_expression "puVar10 = (undefined1 *)(iVar17 + iVar2 * 4)" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)(iVar17 + iVar2 * 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar2 * 4)" (( "(") (binary_expression "iVar17 + iVar2 * 4" (identifier "iVar17") (+ "+") (binary_expression "iVar2 * 4" (identifier "iVar2") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "uVar14") (= "=") (call_expression "FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "FUN_00072f44") (argument_list "(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f)" (( "(") (identifier "iVar19") (, ",") (identifier "iVar17") (, ",") (identifier "puVar10") (, ",") (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar3 << 0x1d)" (( "(") (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);" (call_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19)" (parenthesized_expression "(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" (* "*") (cast_expression "(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar20 + -0x1b8) + -0x76fc)" (( "(") (binary_expression "*(int *)(puVar20 + -0x1b8) + -0x76fc" (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")")))) (+ "+") (number_literal "-0x76fc")) () ")"))))) () ")")) (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")"))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" (identifier "puVar15") (= "=") (binary_expression "puVar20 + -0x1d0" (identifier "puVar20") (+ "+") (number_literal "-0x1d0"))) (; ";")) (} "}")))) (} "}")))))) (goto_statement "goto LAB_000750b0;" (goto "goto") (statement_identifier "LAB_000750b0") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar11 = *(int *)(puVar20 + -0x1b0);" (assignment_expression "iVar11 = *(int *)(puVar20 + -0x1b0)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b0)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b0)" (( "(") (binary_expression "puVar20 + -0x1b0" (identifier "puVar20") (+ "+") (number_literal "-0x1b0")) () ")"))))) (; ";")) (expression_statement "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);" (assignment_expression "iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(iVar19 + -0x779c))(iVar11)" (parenthesized_expression "(**(code **)(iVar19 + -0x779c))" (( "(") (pointer_expression "**(code **)(iVar19 + -0x779c)" (* "*") (pointer_expression "*(code **)(iVar19 + -0x779c)" (* "*") (cast_expression "(code **)(iVar19 + -0x779c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + -0x779c)" (( "(") (binary_expression "iVar19 + -0x779c" (identifier "iVar19") (+ "+") (number_literal "-0x779c")) () ")"))))) () ")")) (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";")) (expression_statement "*(byte **)(puVar20 + -0x1c0) = pbVar3;" (assignment_expression "*(byte **)(puVar20 + -0x1c0) = pbVar3" (pointer_expression "*(byte **)(puVar20 + -0x1c0)" (* "*") (cast_expression "(byte **)(puVar20 + -0x1c0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + -0x1c0)" (( "(") (binary_expression "puVar20 + -0x1c0" (identifier "puVar20") (+ "+") (number_literal "-0x1c0")) () ")")))) (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "puVar10 = (undefined1 *)(iVar11 + iVar2);" (assignment_expression "puVar10 = (undefined1 *)(iVar11 + iVar2)" (identifier "puVar10") (= "=") (cast_expression "(undefined1 *)(iVar11 + iVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + iVar2)" (( "(") (binary_expression "iVar11 + iVar2" (identifier "iVar11") (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);" (assignment_expression "uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "uVar14") (= "=") (call_expression "FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" (identifier "FUN_000742fc") (argument_list "(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,\n                        (uint)((int)pbVar3 << 0x1d) >> 0x1f)" (( "(") (pointer_expression "*(undefined4 *)(puVar20 + -0x1ac)" (* "*") (cast_expression "(undefined4 *)(puVar20 + -0x1ac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1ac)" (( "(") (binary_expression "puVar20 + -0x1ac" (identifier "puVar20") (+ "+") (number_literal "-0x1ac")) () ")")))) (, ",") (identifier "iVar11") (, ",") (identifier "puVar10") (, ",") (binary_expression "(uint)((int)pbVar3 << 0x1d) >> 0x1f" (call_expression "(uint)((int)pbVar3 << 0x1d)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar3 << 0x1d)" (( "(") (binary_expression "(int)pbVar3 << 0x1d" (cast_expression "(int)pbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar3")) (<< "<<") (number_literal "0x1d")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(puVar20 + -0x1b8);" (assignment_expression "iVar2 = *(int *)(puVar20 + -0x1b8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(puVar20 + -0x1b8)" (* "*") (cast_expression "(int *)(puVar20 + -0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x1b8)" (( "(") (binary_expression "puVar20 + -0x1b8" (identifier "puVar20") (+ "+") (number_literal "-0x1b8")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar20 + -0x1d0;" (assignment_expression "puVar15 = puVar20 + -0x1d0" (identifier "puVar15") (= "=") (binary_expression "puVar20 + -0x1d0" (identifier "puVar20") (+ "+") (number_literal "-0x1d0"))) (; ";")) (labeled_statement "LAB_000750b0:\n  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" (statement_identifier "LAB_000750b0") (: ":") (if_statement "if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8))" (( "(") (binary_expression "*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)" (pointer_expression "*(int *)(puVar20 + -0x19c)" (* "*") (cast_expression "(int *)(puVar20 + -0x19c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + -0x19c)" (( "(") (binary_expression "puVar20 + -0x19c" (identifier "puVar20") (+ "+") (number_literal "-0x19c")) () ")")))) (!= "!=") (pointer_expression "**(int **)(iVar2 + -0x77c8)" (* "*") (pointer_expression "*(int **)(iVar2 + -0x77c8)" (* "*") (cast_expression "(int **)(iVar2 + -0x77c8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + -0x77c8)" (( "(") (binary_expression "iVar2 + -0x77c8" (identifier "iVar2") (+ "+") (number_literal "-0x77c8")) () ")")))))) () ")")) (compound_statement "{\n    pcVar22 = *(code **)(iVar2 + -0x7834);\n    pcVar23 = rpl_fseek;\n    (*pcVar22)();\n    *(code **)(puVar15 + -4) = pcVar23;\n    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;\n    *(undefined1 **)(puVar15 + -0x18) = puVar10;\n    uVar14 = rpl_fseeko();\n    return uVar14;\n  }" ({ "{") (expression_statement "pcVar22 = *(code **)(iVar2 + -0x7834);" (assignment_expression "pcVar22 = *(code **)(iVar2 + -0x7834)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(iVar2 + -0x7834)" (* "*") (cast_expression "(code **)(iVar2 + -0x7834)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + -0x7834)" (( "(") (binary_expression "iVar2 + -0x7834" (identifier "iVar2") (+ "+") (number_literal "-0x7834")) () ")"))))) (; ";")) (expression_statement "pcVar23 = rpl_fseek;" (assignment_expression "pcVar23 = rpl_fseek" (identifier "pcVar23") (= "=") (identifier "rpl_fseek")) (; ";")) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(code **)(puVar15 + -4) = pcVar23;" (assignment_expression "*(code **)(puVar15 + -4) = pcVar23" (pointer_expression "*(code **)(puVar15 + -4)" (* "*") (cast_expression "(code **)(puVar15 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;" (assignment_expression "*(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130" (pointer_expression "*(code **)(puVar15 + -0x10)" (* "*") (cast_expression "(code **)(puVar15 + -0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "pcVar22 + 0x4a130" (identifier "pcVar22") (+ "+") (number_literal "0x4a130"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar10;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar10" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar10")) (; ";")) (expression_statement "uVar14 = rpl_fseeko();" (assignment_expression "uVar14 = rpl_fseeko()" (identifier "uVar14") (= "=") (call_expression "rpl_fseeko()" (identifier "rpl_fseeko") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}")))) (return_statement "return uVar14;" (return "return") (identifier "uVar14") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (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)))))) (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: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list)))) (return_statement (identifier)))))) (break_statement)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (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)))))) (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: (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: (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: (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: (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: (binary_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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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: (pointer_expression argument: (cast_expression 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))))))) (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: (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: (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: (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: (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)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))))))))) arguments: (argument_list)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (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 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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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: (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)) 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: (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: (pointer_expression argument: (cast_expression 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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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: (pointer_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) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (pointer_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) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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: (pointer_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) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))))))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (return_statement (identifier))))) (return_statement (identifier)))))

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

{
  byte bVar1;
  int iVar2;
  byte *pbVar3;
  uint uVar4;
  int *piVar5;
  undefined4 *puVar6;
  undefined *puVar7;
  undefined4 uVar8;
  byte *pbVar9;
  undefined1 *puVar10;
  byte *unaff_s0;
  int iVar11;
  undefined4 *unaff_s1;
  byte *unaff_s2;
  byte *pbVar12;
  byte *pbVar13;
  undefined *unaff_s4;
  uint uVar14;
  undefined1 *puVar15;
  undefined4 *unaff_s5;
  undefined1 *puVar16;
  int iVar17;
  uint unaff_s7;
  undefined *puVar18;
  int iVar19;
  undefined1 *puVar20;
  uint uVar21;
  code *pcVar22;
  code *pcVar23;
  undefined1 auStack_68 [24];
  byte *local_48;
  undefined4 *local_34;
  undefined4 local_30;
  byte *local_2c;
  
  puVar20 = auStack_68;
  local_2c = *(byte **)PTR___stack_chk_guard_000b7c68;
  local_30 = 0;
  pbVar9 = param_2;
  local_48 = (byte *)(*(code *)PTR_strlen_000b7c94)(param_2);
  puVar18 = PTR_DAT_000b7720;
  iVar2 = (int)(char)param_2[1];
  local_34 = &local_30;
  if (iVar2 != 0) {
    unaff_s2 = param_2 + 1;
    unaff_s1 = (undefined4 *)0x0;
    puVar7 = PTR_DAT_000b758c + 0x1ad0;
    unaff_s7 = (uint)(param_1 - 0x3f < 2);
    pbVar12 = unaff_s2;
    puVar20 = auStack_68;
LAB_000742a0:
    do {
      unaff_s4 = puVar18;
      if (iVar2 == 0x5b) {
        if (*(int *)(puVar18 + -0x2c00) == 0) {
          iVar2 = (*(code *)PTR_getenv_000b7dec)(puVar7);
          uVar8 = 0xffffffff;
          if (iVar2 != 0) {
            uVar8 = 1;
          }
          *(undefined4 *)(puVar18 + -0x2c00) = uVar8;
        }
        if ((pbVar12[1] == 0x21) ||
           ((pbVar3 = pbVar12 + 1, *(int *)(puVar18 + -0x2c00) < 0 && (pbVar12[1] == 0x5e)))) {
          pbVar3 = pbVar12 + 2;
        }
        pbVar12 = pbVar3;
        if (*pbVar12 == 0x5d) {
          pbVar12 = pbVar12 + 1;
        }
        while( true ) {
          bVar1 = *pbVar12;
          unaff_s0 = pbVar12 + 1;
          if (bVar1 == 0x5d) break;
          pbVar12 = pbVar12 + 1;
          if (bVar1 == 0) goto switchD_00073e7c_caseD_20;
        }
      }
      else {
        puVar6 = unaff_s1;
        if (((iVar2 - 0x21U & 0xff) < 0x20) && ((0xc0000601U >> (iVar2 - 0x21U & 0x1f) & 1) != 0)) {
          if (pbVar12[1] == 0x28) {
            unaff_s1 = (undefined4 *)((int)unaff_s1 + 1);
            iVar2 = (int)(char)pbVar12[1];
            pbVar12 = pbVar12 + 1;
            goto LAB_000742a0;
          }
        }
        else {
          unaff_s0 = pbVar12;
          if (iVar2 == 0x29) {
            puVar6 = (undefined4 *)((int)unaff_s1 + -1);
            if (unaff_s1 == (undefined4 *)0x0) {
              if (1 < param_1 - 0x3f) {
                local_48 = pbVar12 + (1 - (int)unaff_s2);
              }
              param_3 = pbVar12 + -(int)unaff_s2;
              if (((uint)(local_48 + 7) & 0xfffffffc) - 4 < 0x1f3c) {
                iVar2 = -(((uint)(local_48 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
                unaff_s1 = (undefined4 *)(puVar20 + iVar2 + 0x18);
                pbVar9 = unaff_s2;
                puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);
                *puVar15 = 0;
                *unaff_s1 = 0;
                *local_34 = unaff_s1;
                param_1 = param_1 - 0x21;
                puVar20 = puVar20 + iVar2;
                if (param_1 < 0x20) {
                    /* WARNING: Could not emulate address calculation at 0x00073e70 */
                    /* WARNING: Treating indirect jump as call */
                  uVar14 = (*(code *)(&_gp_1 + *(int *)(PTR_DAT_000b758c + param_1 * 4 + 0x1c50)))()
                  ;
                  return uVar14;
                }
              }
              break;
            }
          }
          else if ((iVar2 == 0x7c) && (unaff_s1 == (undefined4 *)0x0)) {
            pbVar3 = local_48;
            if (unaff_s7 == 0) {
              pbVar3 = pbVar12 + (1 - (int)unaff_s2);
            }
            param_3 = pbVar12 + -(int)unaff_s2;
            if (0x1f3b < ((uint)(pbVar3 + 7) & 0xfffffffc) - 4) break;
            iVar2 = -(((uint)(pbVar3 + 7) & 0xfffffffc) + 7 & 0xfffffff8);
            unaff_s5 = (undefined4 *)(puVar20 + iVar2 + 0x18);
            puVar15 = (undefined1 *)(*(code *)PTR_mempcpy_000b7c88)(puVar20 + iVar2 + 0x1c);
            *puVar15 = 0;
            *unaff_s5 = 0;
            *local_34 = unaff_s5;
            pbVar9 = unaff_s2;
            unaff_s2 = pbVar12 + 1;
            puVar20 = puVar20 + iVar2;
            local_34 = unaff_s5;
          }
        }
        unaff_s0 = pbVar12 + 1;
        unaff_s1 = puVar6;
      }
      iVar2 = (int)(char)pbVar12[1];
      pbVar12 = unaff_s0;
    } while (iVar2 != 0);
  }
switchD_00073e7c_caseD_20:
  if (local_2c == *(byte **)PTR___stack_chk_guard_000b7c68) {
    return 0xffffffff;
  }
  pcVar22 = FUN_000742fc;
  pbVar12 = local_2c;
  puVar18 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  puVar7 = puVar18 + 0x4b134;
  *(code **)(puVar20 + -4) = pcVar22;
  *(undefined1 **)(puVar20 + -8) = auStack_68;
  *(uint *)(puVar20 + -0xc) = unaff_s7;
  *(uint *)(puVar20 + -0x10) = param_1;
  *(undefined4 **)(puVar20 + -0x14) = unaff_s5;
  *(undefined **)(puVar20 + -0x18) = unaff_s4;
  *(byte **)(puVar20 + -0x1c) = param_2;
  *(byte **)(puVar20 + -0x20) = unaff_s2;
  *(undefined4 **)(puVar20 + -0x24) = unaff_s1;
  *(byte **)(puVar20 + -0x28) = unaff_s0;
  *(undefined **)(puVar20 + -0x158) = puVar7;
  *(undefined4 *)(puVar20 + 0xc) = param_4;
  *(undefined4 *)(puVar20 + -0x2c) = **(undefined4 **)(puVar18 + 0x4396c);
  *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;
  uVar14 = (uint)*pbVar12;
  pbVar3 = param_3;
  pbVar13 = pbVar9;
  if (uVar14 != 0) {
    unaff_s5 = (undefined4 *)(*(uint *)(puVar20 + 0x10) & 0x10);
    *(int *)(puVar20 + -0x144) = *(int *)(puVar18 + 0x43290) + 0x1cd0;
    *(int *)(puVar20 + -0x138) = *(int *)(puVar18 + 0x4371c) + 0x3c30;
    *(undefined4 *)(puVar20 + -0x140) = *(undefined4 *)(puVar18 + 0x43424);
    *(int *)(puVar20 + -0x13c) = *(int *)(puVar18 + 0x43290) + 0x1ad0;
    do {
      if (unaff_s5 != (undefined4 *)0x0) {
        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();
        puVar7 = *(undefined **)(puVar20 + -0x158);
        uVar14 = (uint)*(byte *)(*piVar5 + uVar14 * 4 + 3);
      }
      if ((uVar14 - 0x21 & 0xff) < 0x3c) {
                    /* WARNING: Could not recover jumptable at 0x00074cf8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        uVar14 = (*(code *)(puVar7 + *(int *)(*(int *)(puVar20 + -0x144) +
                                             (uVar14 - 0x21 & 0xff) * 4)))();
        return uVar14;
      }
      uVar21 = 1;
      if (param_3 == pbVar13) goto LAB_00074dd8;
      if (unaff_s5 == (undefined4 *)0x0) {
        uVar4 = (uint)*pbVar13;
      }
      else {
        piVar5 = (int *)(**(code **)(puVar7 + -0x7888))();
        puVar7 = *(undefined **)(puVar20 + -0x158);
        uVar4 = *(uint *)(*piVar5 + (uint)*pbVar13 * 4);
      }
      uVar21 = 1;
      if (uVar4 != uVar14) goto LAB_00074dd8;
      pbVar12 = *(byte **)(puVar20 + -0x14c);
      *(undefined4 *)(puVar20 + 0xc) = 0;
      *(byte **)(puVar20 + -0x14c) = pbVar12 + 1;
      uVar14 = (uint)*pbVar12;
      pbVar13 = pbVar13 + 1;
    } while (uVar14 != 0);
  }
  if (param_3 == pbVar13) {
    uVar21 = 0;
  }
  else if ((*(uint *)(puVar20 + 0x10) & 8) == 0) {
    uVar21 = 1;
  }
  else {
    uVar21 = (uint)(*pbVar13 != 0x2f);
  }
LAB_00074dd8:
  iVar2 = *(int *)(puVar20 + -0x2c);
  if (iVar2 == **(int **)(puVar7 + -0x77c8)) {
    return uVar21;
  }
  pcVar22 = *(code **)(puVar7 + -0x7834);
  pcVar23 = rpl_fnmatch;
  (*pcVar22)();
  puVar15 = puVar20 + -0x1d0;
  *(code **)(puVar20 + -0x174) = pcVar23;
  *(uint *)(puVar20 + -0x178) = uVar21;
  *(uint *)(puVar20 + -0x17c) = param_1;
  *(undefined4 **)(puVar20 + -0x180) = unaff_s5;
  *(uint *)(puVar20 + -0x184) = uVar14;
  *(byte **)(puVar20 + -0x188) = pbVar13;
  *(byte **)(puVar20 + -0x18c) = pbVar12;
  *(undefined4 **)(puVar20 + -400) = unaff_s1;
  *(byte **)(puVar20 + -0x194) = unaff_s0;
  *(code **)(puVar20 + -0x1b8) = pcVar22 + 0x4a438;
  *(int *)(puVar20 + -0x1ac) = iVar2;
  *(byte **)(puVar20 + -0x1b0) = pbVar9;
  *(undefined4 *)(puVar20 + -0x19c) = **(undefined4 **)(pcVar22 + 0x42c70);
  iVar2 = (**(code **)(pcVar22 + 0x42e44))();
  iVar19 = *(int *)(puVar20 + -0x1b8);
  if (iVar2 != 1) {
    *(undefined4 *)(puVar20 + -0x1a4) = 0;
    *(undefined4 *)(puVar20 + -0x1a0) = 0;
    iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1ac,0);
    iVar19 = *(int *)(puVar20 + -0x1b8);
    uVar14 = iVar2 + 1;
    if (uVar14 != 0) {
      puVar10 = (undefined1 *)0x0;
      iVar2 = (**(code **)(iVar19 + -0x765c))(0,puVar20 + -0x1b0,0,puVar20 + -0x1a4);
      iVar19 = *(int *)(puVar20 + -0x1b8);
      iVar11 = iVar2 + 1;
      if (iVar11 != 0) {
        uVar21 = uVar14 + iVar11;
        if ((uVar21 < uVar14) || (0x3fffffff < uVar21)) {
          puVar6 = (undefined4 *)(**(code **)(iVar19 + -0x7578))();
          iVar2 = *(int *)(puVar20 + -0x1b8);
          *puVar6 = 0xc;
          uVar14 = 0xffffffff;
        }
        else if (uVar21 < 2000) {
          iVar17 = -(uVar21 * 4 + 7 & 0xfffffff8);
          puVar16 = puVar20 + iVar17 + -0x1b8;
          puVar15 = puVar16 + uVar14 * 4;
          (**(code **)(iVar19 + -0x765c))(puVar16,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);
          (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                    (puVar15,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);
          *(byte **)(puVar20 + iVar17 + -0x1c0) = pbVar3;
          puVar10 = puVar15 + iVar2 * 4;
          uVar14 = FUN_00072f44(puVar16,puVar15,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);
          iVar2 = *(int *)(puVar20 + -0x1b8);
          puVar15 = puVar20 + iVar17 + -0x1d0;
        }
        else {
          iVar19 = (**(code **)(iVar19 + -0x7820))(uVar21 * 4);
          if (iVar19 == 0) {
            puVar6 = (undefined4 *)(**(code **)(*(int *)(puVar20 + -0x1b8) + -0x7578))();
            iVar2 = *(int *)(puVar20 + -0x1b8);
            *puVar6 = 0xc;
            uVar14 = 0xffffffff;
            puVar15 = puVar20 + -0x1d0;
          }
          else {
            iVar17 = iVar19 + uVar14 * 4;
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (iVar19,puVar20 + -0x1ac,uVar14,puVar20 + -0x1a4);
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x765c))
                      (iVar17,puVar20 + -0x1b0,iVar11,puVar20 + -0x1a4);
            *(byte **)(puVar20 + -0x1c0) = pbVar3;
            puVar10 = (undefined1 *)(iVar17 + iVar2 * 4);
            uVar14 = FUN_00072f44(iVar19,iVar17,puVar10,(uint)((int)pbVar3 << 0x1d) >> 0x1f);
            (**(code **)(*(int *)(puVar20 + -0x1b8) + -0x76fc))(iVar19);
            iVar2 = *(int *)(puVar20 + -0x1b8);
            puVar15 = puVar20 + -0x1d0;
          }
        }
        goto LAB_000750b0;
      }
    }
  }
  iVar11 = *(int *)(puVar20 + -0x1b0);
  iVar2 = (**(code **)(iVar19 + -0x779c))(iVar11);
  *(byte **)(puVar20 + -0x1c0) = pbVar3;
  puVar10 = (undefined1 *)(iVar11 + iVar2);
  uVar14 = FUN_000742fc(*(undefined4 *)(puVar20 + -0x1ac),iVar11,puVar10,
                        (uint)((int)pbVar3 << 0x1d) >> 0x1f);
  iVar2 = *(int *)(puVar20 + -0x1b8);
  puVar15 = puVar20 + -0x1d0;
LAB_000750b0:
  if (*(int *)(puVar20 + -0x19c) != **(int **)(iVar2 + -0x77c8)) {
    pcVar22 = *(code **)(iVar2 + -0x7834);
    pcVar23 = rpl_fseek;
    (*pcVar22)();
    *(code **)(puVar15 + -4) = pcVar23;
    *(code **)(puVar15 + -0x10) = pcVar22 + 0x4a130;
    *(undefined1 **)(puVar15 + -0x18) = puVar10;
    uVar14 = rpl_fseeko();
    return uVar14;
  }
  return uVar14;
}

